(운영체제 카테고리의 글은 Abraham Silberschatz의 'Operating System Concepts'를 기반으로 작성합니다.)
1. Process state
- New : 프로세스가 처음 생성되었을 때
- Ready : 프로세스가 프로세서에 할당되기를 기다릴 때
- Running : 프로세스가 할당되어 실행될 때
- Waiting : 프로세스가 이벤트를 기다릴 때
- Terminated : 프로세스가 실행을 마쳤을 때
2. PCB (Process Control Block)
각각의 Process는 자신의 정보 묶음인 PCB를 가지고 있다.
PCB에는 다음과 같은 정보들이 담겨있다.
- Process state
- Program counter : 프로세스가 이어서 실행해야 할 명령의 주소
- CPU registers
- CPU scheduling information : 프로세스의 priority, 스케줄링 큐 포인터 등 스케줄링 파라미터 정보
- Memory management information : base, limit 레지스터 값, 페이지 테이블 등 메모리 시스템 정보
- Accounting information : 사용된 CPU 총량, 프로세스 개수, 시간 제한 등의 정보
- I/O status information : 프로세스에 할당된 입출력 장치 목록, 열린 파일 목록 등 정보
3. Threads
(chapter 3에서 다룰 예정)
4. Process Scheduling
CPU에서 프로그램 실행을 위해 사용 가능한 프로세스를 선택하며, 어떤 process를 processor에 할당할 것인가 결정한다.
- Scheduling Queues
프로세스가 시스템에 들어오면 Job Queue에 들어가고, 메인메모리에서 실행을 기다리는 ready 상태의 프로세스들은 ready queue에 쌓인다. 입출력 장치를 기다리는 프로세스들은 device queue에 들어가고, 이벤트를 기다리는 프로세스들은 wait queue에 들어간다.
- Schedulers
ready queue에 프로세스를 옮기는 것은 job scheduler, 혹은 long-term scheduler라고 하며, 프로세스를 프로세서에 할당하는 것은 CPU scheduler, 혹은 Short-term scheduler 라고 한다.
5. Context Switch
프로세스가 실행되다가 인터럽트가 발생해 운영체제가 개입하여 프로세서에 할당된 프로세스를 바꾸는 것을 말한다. 프로세서가 다른 프로세스로 switch 할 때, 시스템은 작업중이던 프로세스와 상태를 저장하고 새로운 프로세스의 상태를 load 한다.
프로세서 입장에서 context는 PCB이므로, PCB 정보가 바뀌는 것이 context switch 이다.
6. Process Operation
시스템은 프로세스 생성, 삭제 메커니즘을 제공한다.
- process creation :
시스템콜의 fork() 를 호출하면 부모 프로세스는 자신과 같은 자식 프로세스를 생성한다. 자식 프로세스는 exec()를 통해 내용을 바꾼다. fork() 는 부모 프로세스에겐 자식 프로세스의 pid를, 자식 프로세스에겐 0 을 반환한다. 부모 프로세스와 자식 프로세스는 동시에 작동한다.
- process termination :
exit()를 호출하면 프로세스를 종료시킬 수 있다.
7. IPC (Interprocess Communication)
프로세스는 서로 협력하며 동작할 수 있다. IPC 모델에는 Message Passing 과 Shared memory 가 있다.
- Message Passing :
송신 프로세스가 수신 프로세스에게 커널을 통해 정보를 전달하며, 수신 프로세스도 커널에 접근해 정보를 수신한다. 패싱은 구현이 쉽지만, context swicth 가 발생해 속도가 느리다.
- Shared Memory :
특정 메모리 공간을 두 프로세스가 함께 사용하며 정보를 주고 받는다. 구현이 어렵지만, 커널을 거치지 않아 속도가 빠르다.
'Computer Science' 카테고리의 다른 글
/작성예정/ 6. Deadlock (교착상태) (0) | 2023.03.16 |
---|---|
OS - 5. 동기화 (Synchronization) (0) | 2023.03.16 |
OS - 4. 스케줄링 (Scheduling) (0) | 2023.03.16 |
OS - 3. Threads (쓰레드) (0) | 2023.03.16 |
OS - 1. 운영체제 Overview (0) | 2023.03.16 |
(운영체제 카테고리의 글은 Abraham Silberschatz의 'Operating System Concepts'를 기반으로 작성합니다.)
1. Process state
- New : 프로세스가 처음 생성되었을 때
- Ready : 프로세스가 프로세서에 할당되기를 기다릴 때
- Running : 프로세스가 할당되어 실행될 때
- Waiting : 프로세스가 이벤트를 기다릴 때
- Terminated : 프로세스가 실행을 마쳤을 때
2. PCB (Process Control Block)
각각의 Process는 자신의 정보 묶음인 PCB를 가지고 있다.
PCB에는 다음과 같은 정보들이 담겨있다.
- Process state
- Program counter : 프로세스가 이어서 실행해야 할 명령의 주소
- CPU registers
- CPU scheduling information : 프로세스의 priority, 스케줄링 큐 포인터 등 스케줄링 파라미터 정보
- Memory management information : base, limit 레지스터 값, 페이지 테이블 등 메모리 시스템 정보
- Accounting information : 사용된 CPU 총량, 프로세스 개수, 시간 제한 등의 정보
- I/O status information : 프로세스에 할당된 입출력 장치 목록, 열린 파일 목록 등 정보
3. Threads
(chapter 3에서 다룰 예정)
4. Process Scheduling
CPU에서 프로그램 실행을 위해 사용 가능한 프로세스를 선택하며, 어떤 process를 processor에 할당할 것인가 결정한다.
- Scheduling Queues
프로세스가 시스템에 들어오면 Job Queue에 들어가고, 메인메모리에서 실행을 기다리는 ready 상태의 프로세스들은 ready queue에 쌓인다. 입출력 장치를 기다리는 프로세스들은 device queue에 들어가고, 이벤트를 기다리는 프로세스들은 wait queue에 들어간다.
- Schedulers
ready queue에 프로세스를 옮기는 것은 job scheduler, 혹은 long-term scheduler라고 하며, 프로세스를 프로세서에 할당하는 것은 CPU scheduler, 혹은 Short-term scheduler 라고 한다.
5. Context Switch
프로세스가 실행되다가 인터럽트가 발생해 운영체제가 개입하여 프로세서에 할당된 프로세스를 바꾸는 것을 말한다. 프로세서가 다른 프로세스로 switch 할 때, 시스템은 작업중이던 프로세스와 상태를 저장하고 새로운 프로세스의 상태를 load 한다.
프로세서 입장에서 context는 PCB이므로, PCB 정보가 바뀌는 것이 context switch 이다.
6. Process Operation
시스템은 프로세스 생성, 삭제 메커니즘을 제공한다.
- process creation :
시스템콜의 fork() 를 호출하면 부모 프로세스는 자신과 같은 자식 프로세스를 생성한다. 자식 프로세스는 exec()를 통해 내용을 바꾼다. fork() 는 부모 프로세스에겐 자식 프로세스의 pid를, 자식 프로세스에겐 0 을 반환한다. 부모 프로세스와 자식 프로세스는 동시에 작동한다.
- process termination :
exit()를 호출하면 프로세스를 종료시킬 수 있다.
7. IPC (Interprocess Communication)
프로세스는 서로 협력하며 동작할 수 있다. IPC 모델에는 Message Passing 과 Shared memory 가 있다.
- Message Passing :
송신 프로세스가 수신 프로세스에게 커널을 통해 정보를 전달하며, 수신 프로세스도 커널에 접근해 정보를 수신한다. 패싱은 구현이 쉽지만, context swicth 가 발생해 속도가 느리다.
- Shared Memory :
특정 메모리 공간을 두 프로세스가 함께 사용하며 정보를 주고 받는다. 구현이 어렵지만, 커널을 거치지 않아 속도가 빠르다.
'Computer Science' 카테고리의 다른 글
/작성예정/ 6. Deadlock (교착상태) (0) | 2023.03.16 |
---|---|
OS - 5. 동기화 (Synchronization) (0) | 2023.03.16 |
OS - 4. 스케줄링 (Scheduling) (0) | 2023.03.16 |
OS - 3. Threads (쓰레드) (0) | 2023.03.16 |
OS - 1. 운영체제 Overview (0) | 2023.03.16 |