-
OS 3강: 프로세스 관리os 운영체제 2024. 2. 19. 22:04
Job vs Process:
작업/프로그램:
실행 할 프로그램 + 데이터, 컴퓨터 시스템에 실행 요청 전의 상태
프로세스:
시스템(커널)에 등록되어 실행 중인 작업, 각종 자원(메모리)을 요구/할당/반납 가능 (능동적)
자원:
커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체
PCB(process control block):
os가 프로세스 관리에 필요한 정보를 저장함, 프로세스 생성시 커널에 생성됨
PCB가 관리하는 정보:
정보는 PCB가 관리하는 정보는 os마다 다름, PCB참조 및 갱신 속도는 os의 성능을 결정 짓는 중요한 요소
메모리 관리
프로세스의 상태:
자원간의 상호작용에 의해 결정
1. Created:
작업이 커널에 등록 -> PCB할당 + 프로세스 생성 ->
ready(할당 받을 메모리가 있으면)/suspended(할당 받을 메모리x)
2-1. Ready:
프로세서 외 모든 자원 할당 받은 상태,
프로세서 할당 -> running 상태
2-2 suspended ready:
메모리를 할당 받지 못한(swap-out) 상태
상태를 memory image로 swap device에 저장, 메모리 확보시 swap-in
3-1. Running: 프로세서와 필요한 자원을 모두 할당 받은 상태
->Preemption: 프로세서 뺏기면 (프로세서 스케줄링/timer run-out) running state로 내려감
->Block/Sleep: running -> asleep (I/O등 자원이 필요할 때 잠시 멈추는거)
->Wake-up: asleep -> ready -> running (프로세서 할당 후 running)(자원할당은 system call에 의해 이뤄짐)
3-2 suspended blocked: ~~
4. terminated:
프로세스 종료, 자원 반납 후 커널 내에 일부 PCB정보만 남은 상태
이후 프로세스를 위해 정보 수집
인터럽트:
인터럽트 처리 과정:
*중단시 PCB에 Context Saving
*서비스 루틴에선 인터럽트를 처리하는 프로세스를 넣어줌
*서비스 루틴 후엔 context switching 발생
os에 따라 context switching에 발생하는 비용이 달라짐, 성능에 큰 영향을 줌.
불필요한 context switching을 줄이는 것이 중요.(ex: 쓰레드 사용하기)
'os 운영체제' 카테고리의 다른 글
컴퓨터 구조: 어드레싱 모드란? (0) 2024.03.25 OS 5강: 프로세스 스케줄링 (0) 2024.03.01 OS 4강: 쓰레드 관리 (0) 2024.02.20 OS 2강: OS overview (1) 2024.02.19 OS 1강: 컴구 Overview (0) 2024.02.17