목차
📂content
1. 프로그램의 실행(메모리 load)
- 프로그램이 실행되는 단계를 보여주는 그림
- 실행 파일을 실행시키면 메모리에 올라가서 프로세스가 된다. 운영체제 kernal이 기본적으로 메모리에 올라가 있다. 사용자 프로그램들은 실행을 시킬때 메모리에 올라가서 프로세스가 되는 것. 사실은 중간에 virtual memory라는 단계를 거친다.
- 버추얼 메모리 : 프로그램이 실행될 때는 그 프로그램만의 독자적인 주소 공간(address space)이라는 것이 만들어진다. 실제로 존재하는 것이 아니라 머리속에 존재하는 것.
- 당장 필요한 부분은 물리적인 메모리에 올라가게 되고, 그렇지 않은 부분은 swap area라는 부분에 올라간다.
- 물리적인 주소와 논리적(virtual) 주소는 다르기 때문에 주소 변환이 필요하다.
- address space 크게 몇 가지 구성 요소가 있다.
- 코드 : 실행파일에 있던 코드가 올라오는 부분. 실제로 cpu에서 수행할 기계어들이 위치
- 데이터 : 데이터가 보관, 프로그램이 실행되다가 메모리 데이터를 쓸 때가 있다. 배열이나 변수. 전역변수와 프로그램이 종료할 때까지 남아있는 데이터
- stack : 함수 안에 있는 지역변수같은 데이터는 stack에 위치 프로시저, 함수.
- 커널도 사실 프로그램이기 때문에 함수 구조로 되어있다. 그리고 이 프로그램이 실행될 때는 커널의 주소 공간도 stack, data, code로 구성되어 있다.
2. 커널 주소 공간의 내용
- 자원을 효율적으로 관리하고, 사용자에게 편리한 인터페이스 제공.
⇒ 그래서 이런 코드가 다 커널에 함수 형태로 들어가 있다. - 운영체제는 하드웨어 자원도 관리하지만, 모든 프로세스를 다 관리함.
그래서 모든 하드웨어를 관리하기 위한 자료 구조, 모든 프로세스를 관리하기 위한 자료구조를 data에 가지고 있다. - stack은 특이한 구조를 가지고 있다. 각각의 프로그램에 의해서 운영체제는 호출이 되기 때문에 누구의 서비스를 수행하기 위해 운영체제가 수행하느냐에 따라서 커널의 스택은 각 프로세스마다 별도로 두고 있다.
3. 사용자 프로그램이 사용하는 함수
- 라이브러리 함수 : 내가 만든 함수는 x지만 내 프로그램 안에 있다.
- 커널 함수 : 내가 가져다 써도 내 코드가 아니라 커널에 들어있는 코드. 예) 디스크 파일을 읽어와라 ⇒ io장치와 관련
4. 프로그램의 실행
- 시스템 콜 : cpu의 제어권이 운영체제에게로 넘어감.
- mode bit 1 : user mode
- mode bit 0 : kernal mode
📑 출처
http://www.kocw.net/home/cview.do?cid=4b9cd4c7178db077
감사합니다😊
'🎥Etc > [kocw]운영체제' 카테고리의 다른 글
[Ch3]프로세스 관리3,4 (0) | 2023.06.25 |
---|---|
[Ch3]프로세스 관리2 (0) | 2023.06.25 |
[Ch2]컴퓨터 시스템의 구조4 (0) | 2023.06.23 |
[Ch2]컴퓨터시스템의 구조3 (0) | 2023.06.23 |
[Ch2]컴퓨터 시스템의 구조1,2 (0) | 2023.06.23 |