프로세스
- 실행중인 프로그램
- PCB를 가진 프로그램
- 비동기적인 행동을 일으키는 주체
- 프로시저가 활동 중인 것
- 프로세서가 할당되는 실체
PCB(Process Control Block)
OS가 프로세스에 대한 정보를 저장하는 공간
프로세스 생성시 PCB가 생성되고, 종료되면 PCB제거
PCB가 담고 있는 정보
- 프로세스 현재상태
- 프로세스 우선 순위
- 할당된 자원 정보
- 프로세스 식별자(PID)
- I/O 상태정보
- 자원포인터
- CPU레지스터 정보
프로세스 전이
스레드(Thread)
하나의 프로세스에서 병행성을 증가시키는 주체
프로세스의 자원과 메모리를 공유함
따라서 다중 스레드는 context switch나 프로세스의 생성 등 부하를 줄여줄 수 있음
프로세스 스케쥴링
시스템 자원을 프로세스에 할당하는 작업
목적
- 작업에 대한 공정성
- 단위시간당 처리량을 높히기 위해, Through put의 극대화
- Trunaround시간 최소화를 위해
방법
1. Non-Preeptive (비선점)
일단 할당 받으면 그 자원을 뺏을 수 없음
일괄 처리에 적합함
- FCFS(First Come First Service) : FIFO아 같은 맥락으로 준비상태 큐에 먼저 도착한 순서대로 진행
- SJF(Shortest Job First) : 준비상태 큐 중에서 소요시간이 가장 짧은 것부터 사용함. 평균 대기시작이 짧아진다.
- HRN(Highest Response-ratio Next) : 우선순위에 따라 수행함
- 기한부 : 주어진 시간 안에 완료되도록 함
- 우선순위(Priority) : 프로세스에 부여된 우선순위가 높은 프로세스 먼저
-> Aging 기법을 주로 사용함 -> 대기시간이 길수록 우선순위가 높아지는 기법
2. Preemptive (선점)
프로세스에 할당된 자원을 빼앗을 수 있음
대화식 시분할 시스템에 적합함.
- SRT(Shortest Remaining Time) : 실행중인 프로세스의 남은 소요시간 vs 다른 프로세스 중 소요시간이 짧은 것 선택
- RR(Round Robin) : 주어진 시간 할당량 안에 작업을 마치지 못하면 큐의 맨 뒤로 보냄
- MQ(다단계 큐) : 프로세스를 우선순위에 따라 시스템, 대화형, 일괄처리등으로 상위, 중위, 하위단계로 큐 배치
- 다단계 피드백 큐 : RR+MQ
Context Switch
현재 실행중인 프로세스의 상태를 저장하고 다음 프로세스의 상태정보를 설정한 후에 실행하는 작업
병행프로세스
두개 이상의 프로세스들이 동시에 실행되는 것
다중처리 or 분산처리에서 매우 중요함
임계구역
여러 프로세스가 공통으로 사용하는 자원 영역으로, 한 시점에 한 프로세스가 사용하도록 해야한다.
이를 위해 동기화기법을 사용한다.
동기화 기법
세마포어 : 임계구역 접근을 위해 P, V연산을 통해 프로세스를 접근을 제한한다.
모니터 : 공유자원이나 할당에 필요한 데이터 및 프로시저를 포함하는 병행성 구조
https://dduddublog.tistory.com/25
프로세스 동기화(뮤텍스,세마포어,임계구역)
목표 1.프로세스 동기화에 대해 간략히 이해한다. 2.Critical Section(임계구역)을 이해한다. 2.세마포어에 대해서 이해한다. 1.뮤텍스에 대해서 이해한다. 3.뮤텍스와 세마포어의 차이에 대해 이해한
dduddublog.tistory.com
Dead Lock(교착상태)
서로 다른 프로세스가 점유한 자원을 서로가 요구하며 무한정 대기로 빠지는 현상
조건
- 상호배제 : 한개의 프로세스만이 공유자원을 사용
- 점유/대기 : 자원을 가진 프로세스가 다른 자원의 할당으 ㄹ요구할 수 있음
- 비선점 : 끝날때까지 뺏을 수 없음
- 환형대기 : 프로세스 앞 뒤의 자원을 요구함
해결
예방, 회피, 발견 회복