IT recording...
[OS] 2. 프로세스란? - (1) 본문
[이화여자대학교 반효경 교수님의 강의를 듣고 정리한 글입니다.]
[그림과 함께 편하게 보려면 여기로]
https://adorable-aspen-d23.notion.site/OS-2-1-69fa28e0783b4e379c50c28653666f54
1. 프로세스 준비
1. 동기/비동기
1. 동기식 입출력 (synchronous I/O)
- Read작업의 경우
- 데이터를 받고 그 다음 작업을 해야함
- I/O 요청 후 입출력 작업이 완료되기를 기다린다.
- 해당 프로세스에서 입출력 작업이 끝나기 전까지는 해당 request process에서 이후 작업 수행 불가
- 근데 보통 I/O작업이 끝나기까지 기다리는 것은 CPU 낭비낭비~ → CPU제어권을 다른 프로그램에 넘겨준다.
2. 비동기식 입출력 (asynchronous I/O)
- Write작업의 경우
- 데이터를 받기를 기다리지 않아도 됨
- I/O요청 후 입출력 작업이 완료되기를 기다리지 않고 , 해당 request process에서 다음 작업을 바로 수행한다.
- 입출력과 무관하게 동작함
2. 프로세스와 메모리
1. 프로그램 실행 시 메모리 load
- 프로그램 : 프로그램은 실행 전에 file system안에 파일 형태로 저장되어 있다.
- 프로세스 : 프로그램을 실행시키면 메모리에 올라가고, 이렇게 실행중인 프로그램을 프로세스라 한다.
2. Virtual Address Space (VAS, 논리적인 주소)
- 프로그램이 실행될 때 독자저긴 Address Space가 만들어진다.
- 프로세스들마다 가상으로 생성, 0번지부터 시작
- 구성
- code : CPU가 수행할 기계어들이 모인 부분 (실행 파일에서 코드가 올라온다.)
- data : 데이터가 보관되는 영역 (전역변수, 프로그램이 실행하고 나서 끝날 때까지 남아있는 변수 등)
- stack : 지역변수, 함수 호출과 관련된 정보들이 보관되는 영역
3. Physical Address Space (물리적인 메모리)
- VAS 중에서 당장 필요한 부분이 물리적인 메모리에 올라간다. (메모리 낭비 방지)
- 논리 주소를 물리주소로 Mapping 한다. (하드웨어가 수행)
- 당장 필요하지 않은 부분은 SWAP된다.
4. Kernel Address Space (커널 주소 공간)
- 커널 : 메모리에 상주하는 운영체제의 부분 (운영체제의 핵심)
- 구성
- code : 시스템콜, 인터럽트 처리 코드, 자원 관리를 위한 코드
- data : PCB
- 운영체제가 모든 하드웨어, 현재 실행 중인 모든 프로세스들을 관리하기 위한 자료구조
- 돌아가는 프로세스마다 개별 PCB가 생성된다.
- stack
- 프로세스마다 별도로 스택을 가지고 있다.
- 커널로 들어오기 전에 누구에 의해 호출되었는지에 따라 프로세스 별로 별도의 커널 스택이 사용된다.
5. 함수
- 사용자 정의 함수
- 자신의 프로그램에서 정의한 함수
- 라이브러리 함수
- 다른 사람이 정의한 함수 가져다 쓰는 것
- 자신의 프로그램의 실행 파일에 포함되어 있다.
- 커널 함수
- 운영체제 프로그램의 함수
- 커널함수의 호출 == 시스템 콜
- 커널 영역에 존재하는 코드는 user 영역에서 jump할 수 없으므로, 운영체제에 요청해야 한다. (시스템콜)
6. 유저모드와 커널모드
- 유저모드
- 사용자 정의함수, 라이브러리 함수 실행 시의 모드
- 사용자 프로그램이 CPU를 제어하는 상태
- mode bit = 1
- 제한된 기계어만 사용 가능
- 커널모드
- 커널함수의 호출(시스템 콜) 발생 시의 모드
- 운영체제가 CPU를 제어하는 상태
- mode bit = 0
- 제약 없이 모든 작업 수행 가능
'Operating System' 카테고리의 다른 글
[OS] 6. CPU 스케줄링 (0) | 2022.04.24 |
---|---|
[OS] 5. 쓰레드 (0) | 2022.04.24 |
[OS] 4. 프로세스 시스템콜, 협력 - (3) (0) | 2022.04.24 |
[OS] 3. 프로세스 스케줄링 - (2) (0) | 2022.04.24 |
[OS] 1. 운영체제 (0) | 2022.04.24 |
Comments