시스템
의 자원
과 동작
을 관리
하는 소프트웨어
프로세스
, 저장장치
, 네트워킹
, 사용자
, 하드웨어
를 관리
data
영역code
영역heap
영역stack
영역실행 중 인 프로그램
스레드
독립된 CPU, 메모리 영역을 할당 받음(사용함).
스레드 안에서 stack
영역은 공유 되지 않고
나머지 data
code
heap
3가지 영역은 다른 스레드와 공유된다.
준비큐에 있는 프로세스에 대해 CPU를 할당하는 방법
비선점 스케줄링
: 예의지킴
FCFS
(First Come First Served) > 선입선출.
SJF
(Shortest Job First) > BurstTime 적은 순으로 처리.
cf. `BurstTime` > cpu 사용시간 (전체 처리시간)
선점 스케줄링
: 너 나와
SRT
(Shortest Remaining Time) > 잔여시간이 기준.
PS
(Priority Scheduling) > 우선순위 높은 순서 먼저 할당.
RR
(Round Robin) > 공통시간 분배처리.
Time Quantum((Time Slice) : 실행의 최소 단위 시간 간격
퀀텀을 길게하면 인터렉티브(쌍방향)적인 시스템에
서는 반응이 늦어 문제가 발생할 수 있고,
그렇다고 너무 짧게하면 컨텍스트 스위칭이 자주 발생해서
성능에 저하를 가져다 준다.
작업 큐
, 준비 큐
, 장치 큐
가 있다.작업 큐 `Job Queue`
메모리 할당을 대기
중인 프로세스들로 구성준비 큐 `Ready Queue`
CPU 할당을 대기
중인 프로세스들로 구성장치 큐 `Device Queue`
입출력 장치 할당을 대기
중인 프로세스들로 구성cf. 컴퓨터는 HDD에 프로그램을 보관하고 사용자가 요청하면 가상 메모리에 올리고 CPU에서 올려진 메모리를 이용해 프로그램을 실행한다.
프로세스가 자원을 얻지 못해 다음 작업을 못하는 상태
Process1(P1)
과 Process2(P2)
이 각각 자원A
와 B
를 둘다 얻어야 되는데 P1이 B를 P2가 A를 가지고 있어서 무한정 대기 상태
로 이어지는 경우 아래 4가지 조건
성립 시 발생
한다.
4가지 조건 동시 성립 시 발생 !!!
자원은 한 번에 한 프로세스
만이 사용할 수 있어야 한다최소한 하나의 자원을 점유
하면서 다른 프로세스에 할당되어 사용하고 있는 자원
을 추가로 점유
하기 위해 대기하는 프로세스
가 있어야 한다.다른 프로세스에 할당된 자원
은 사용이 끝날 때까지 강제로 빼앗을 수 없어야
한다