티스토리 뷰
4. 스케줄러
장기스케줄러(작업스케줄러) : 저장소(큐)에서 프로세스들을 선택하여 실해하기 위해 기억장치로 적재
단기스케줄러(CPU스케줄러) : 실행준비가 되어 있는 프로세스 중에서 선택하여 이들 중 하나에게 CPU를 할당
중기 스케줄러 : 기억장치에서 프로세스들을 제거하여 다중프로그래밍의 정도를 완하하는 것이 바람직할 때가 있다는 것에서 유래한 것으로 프로세스는 중기 스케줄러에 의하여 교체된다. 차후에 다시 프로세스를 메모리로 불러와서 중단되었던 지점으로부터 실행을 재개하는 기법을 스와핑이라 한다.
스케줄링 성능기준
- CPU 이용률 : 프로세스들이 CPU를 사용하는 비율로 실제로는 CPU가 쉬는시간을 측정하여 그 시간을 제외한 나머지 시간을 사용
- 시스템 처리율 : 단위시간당 완료된 프로세스의 개수
- 반환시간 : 프로세스들이 시스템에 들어간 시간과 마친 시간의 차이를 말하며 출력장치의 속도에 제한을 받는다.
- 대기시간 : 프로세스가 준비 큐에서 대기하는 시간으로 큐의 길이에 의해 측정될 수 있다.
- 응답시간 : 프로세스의 요구한 시간으로부터 첫 번째 응답이 나올 때까지의 시간
스케줄링 방법 분류
-선점 스케줄링 : 현재 프로세스로부터 프로세서를 빼앗을 수 있는 방식으로 높은 우선순위의 프로세스로부터 긴급처리 요구에 유용하며 특히 실시간 프로세스, 대화식 시분할 시스템에서 빠른응답이 가능
종류 : RR(Round Robin), SRT(Shorest Remain Time), MFQ(Multi level Feedback Queue), MLQ(Multi level Queue)
-비선점 스케줄링 : 프로세스에게 할당된 프로세서를 빼앗을 수 없는 방식, 사용이 끝날때까지 기다림
종류 : FIFO(First In First Out), SJF(Shortest Job First), HRN (Highest Response Ration Next), 우선순위, 기한부
5. 프로세스간 협조
- 생산자와 소비자 문제 : 두 개의 프로세스는 하나의 고정된 크기의 버퍼를 공유하는 상태에서 하나의 프로세스는 그 버퍼에 정보를 써넣는 생산자이고 또 다른 프로세스는 버퍼에 있는 정보를 꺼내어 사용하는 소비자 프로세스이다. 이들이 같은속도로 진행된다면 문제는 없지만 속도가 다를 경우 즉 버퍼가 비어 있는 상태에서 소비자 프로세스가 버퍼에서 데이터를 읽어가려하거나 생산자가 정보를 넣을때 버퍼가 가득차있어 오버플로우 되는 현상이 나타날 수 있다.
6, 임계영역 문제
두개 이상의 프로세스가 동시에 액세스 하면 안되는 공유 자원을 액세스하는 코드영역
해결하기위한 3가지 조건
1. 상호배제
2. 진행(Progress) : 임계구역에 들어가려고하는 프로세스들만이 순서결정에 참여
3. 한계대기(bounded wating) : 무한정 대기해서는 안됨
7. 프로세스간 통신
- 공유 메모리 방식 : 어떤 변수들을 공유함으로써 프로세스들간의 통신이 이루어지는 기법으로 프로세스들은 공유변수를 통해 정보를 교환하며 운영체제는 공유메모리만 제공한다. 프로그래머는 공유메모리를 통해 통신기능을 구현할 수 있다.
- 메시지 시스템 방식 : 프로세스들이 메시지를 교환하도록 허용하는 기법이다.
8. 교착상태(Deadlock)
현상 : 다중 프로그래밍 시스템에서 아무리 기다려도 결코 일어나지 않을 사건을 기다리고 있는 프로세스를 교착상태에 빠졌다고 한다. 교착상태란 다중 프로그래밍 시스템 하에서 서로 다른 프로세서가 일어날 수 없는 사건을 무한정 기다리는 상태를 의미하고 이러한 상태를 환형대기(Circular wait)라고도 한다.
발생조건 : 상호배제, 점유와대기, 비중단조건, 환형대기조건
해결방안 : 예방, 회피, 탐지, 복구
'자격증-공부' 카테고리의 다른 글
프로세스 주소 영역(Process Adress Space) (1) | 2024.02.07 |
---|---|
[정보보안] CPU의 구성요소 (0) | 2024.02.02 |
운영체제의 주요 구성기술-1 (0) | 2022.01.20 |
- Total
- Today
- Yesterday
- selenium
- 파이썬
- aws공부
- 윈도우오류
- PythonSyntaxError
- 크롬드라이버자동
- 자격증공부
- NETFramework오류
- seleniumerror
- 프레임워크3.5설치불가
- 닷넷프레임워크오류
- 오류
- 프레임워크오류
- 0x800F0950
- 오블완
- 버그
- nomodulename
- 파이썬오류
- NETFramework3.5
- Error
- 티스토리챌린지
- Python
- 정보보안
- 셀레니움오류
- webdriver
- 엣지깔끔하게
- 설치오류
- 셀레니움
- 운영체제구성#스케줄링#큐#프로세스#쓰레드#태스터#OS구성
- noudelnoutfounderror
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |