Tree of Processes
passwordID도 순서가 존재하고, 가장 먼저 실행되어야하는 순서의 프로세스가 존재하고, 자식 프로세스가 생겨나면서 트리구조가 형성될 수 있다
fork(), exec()
fork()
•
새로운 프로세스를 위한 메모리 할당
•
fork()를 호출한 프로세스를 새로운 공간으로 복사
exec()
•
새로운 프로세스를 위한 메모리 할당 X
•
exec()에 의해 호출된 프로세스가 메모리에 남음
Process Termination
Program VS Process
program / job
•
프로그램 + 데이터
•
실행 요청 전의 상태
Process
•
실행을 위해 시스템(커널)에 등록된 작업
•
커널에 의해 관리
프로세스
커널에 등록되고 커널의 관리하에 있는 작업
•
자원 요청 및 할당을 받을 수 있는 개체
•
프로세스 관리 블록(PCB)을 할당 받은 개체
•
실행 중 각종 자원을 요구,할당, 반납(능동적 개체)
Process Control Block(PCB)
•
OS가 프로세스 관리에
필요한 정보 저장
•
프로세스 생성시 만듦
•
커널이 관리
•
PID
•
I/O status info
•
Scheduling info
•
process status
•
memory magnagment info
•
context save area
(프로세스의 레지스터 상태 저장)
•
계정 정보
(다중 사용인 경우)
State Transition
Created State
Ready State
Running State
Block/Asleep State
Suspended State
Terminated/Zombie State
프로세스 종료
프로세스 마지막 명령 실행 후, OS에 프로세스 삭제 요청
1. 일괄처리 환경
2. 대화형 환경
오류로 인한 종료
abort
•
종료할 프로세스의 부모가 프로세스 중단한 경우
•
자식 프로세스가 할당된 자원을 초과하여 사용할 경우
•
자식 프로세스에 할당할 자원이 더 없는 경우
프로세스 제거
•
사용되던 자원을 시스템에 반환
•
PCB 회수
•
프로그램은 디스크에 저장
•
부모 프로세스가 제거되면, 자식 프로세스는 자동 제겨ㅓ
프로세스 중단과 재시작
Suspend상태에 해당
요약
Interrupt
인터럽트가 발생했을때,
실행중이던 프로세스의 PCB를 잠시 저장했다가(Context Saving)
인터럽트한 프로세스가 중단된 후는 다시 당시 정보를 가져옴(Context Restoring)
Context Switching
Context
•
프로세소와 관련된
정보 집합
•
Register info : CPU
•
code, data, stack, PCB info : Memory
Context Switching
필연적으로 스위칭 시간이 있을 수 밖에 없다
•
실행중인 프로세스의 Context를 저장하고, 실행될 프로세스의 Context를 복구하는 일
•
커널의 개입
Thread
크롬을 생각해봅시다
크롬 브라우저를 열어서, A라는 작업을 하고 있는데, 유튜브에서 노래를 틀고 싶어져서 창을 하나 더 열어주고, 와중에 잠깐 웹툰을 보려고 탭을 하나 더 연다고 생각해보면,
하나의 프로그램(크롬)에서 멀티 스레드를 사용하는 것이라고 할 수 있겠습니다.
•
멀티 쓰레드를 하나의 프로그램 내에서 사용하다보니, 아무래도 Context Switching이 적어짐으로써, 딜레이 시간이 적어집니다. → Light Weight Process라고 부르기도 함
•
프로세서 활용의 기본 단위
장점
•
사용자 응답속도
•
자원 공유 효율성 증가







