CPU의 처리속도와 입출력 장치의 속도 차이를 보완하기 위한 방법중
스풀링과 버퍼링이 있다.
스풀링
스풀(Spool) : Simultaneous Peripheral Operation On-Line
CPU와 각각의 I/O 장치가 독립적으로 작동
I/O 장치를 이용하는 프로세스 간 속도 차를 극복 ex 프린터 작업 하는 프로세스를 따로 빼서 작업 시킴
일반적으로 하드디스크를 활용
버퍼링(Buffering)
CPU와 입출력 장치와의 속도 차이를 줄이기 위해 메모리(주기억 장치의 일부분)가 중재
인터럽트
프로세스가 수행 중에 다른 프로세스를 수행하기 위하여 현재 수행중인 프로세스를 중단
또는, 외부 입력 장치에 의해 프로세스가 중단되는 상태
쉽게 말해 현재 작업하는 것에 딴지를 걸어 주도권이 바뀌는 상태를 말하는 것것이다
"왜 내가 말하는데 딴지를 걸어!!!" == "왜 내가 작업하는데 인터럽트를 걸어!!!"
구분: H/W 인터럽트, S/W 인터럽트
인터럽트 발생 후 처리 순서
① 운영체제가 제어권을 가짐 == 너 말하지마 내가 말할거임
② 현재 동작중인 프로세스의 상태를 저장 == 너 어제 이태원 다녀왔다고? 일단 알겠어
③ 인터럽트 정보 분석 및 처리 루틴(ISR: Interrupt Service Routine)으로 제어권 변경 = 이제 내가 대화의 흐름을 주도한다.
④ 인터럽트 처리 == 나 그래서 ~~~ 했다 ㅎㅎ
⑤ 이전의 프로세스의 상태를 복구 == 그래서 너 이태원에서 밥먹고 뭐했다고?
⑥ 이전 프로세스 실행 == ㅡ-ㅡ 밥먹고 노래방 가고 ....
인터럽트 종류 (1/2)
SVC(SuperVisor Call) 인터럽트
• 제어프로그램(운영체제의 일부)이 감시프로그램(Supervisor Program)의 기능을 호출
• 감시프로그램 호출은 사용자로부터 운영체제를 보호, 입출력 수행 루틴 호출, 기억 장치 할당, 오퍼레이터와의 대화를 위한 인터럽트임
입출력(I/O) 인터럽트
• H/W적 인터럽트로 입출력 채널 확인, 준비, 할당, 완료 시 발생
외부(external) 인터럽트
• 인터럽트 시계에 의해 프로세스가 시간 할당량이 종료된 경우
• 네트워크 및 외부(키보드, 마우스 포함)로부터 인터럽트 처리 신호가 왔을 경우 발생
재시작(restart) 인터럽트
• 재부팅 등 운영체제를 메모리에 다시 적재시킬 때 발생
• 사용자가 Ctrl + Alt + delete 입력, 물리적 리셋 버튼
인터럽트 종류 (2/2)
프로그램 검사(Program Check) 인터럽트
• 프로그램 명령어를 수행하는 과정에서 부분적으로 발생되는 문제들에 의해 발생
• 데이터 연산에 따른 오버플러(Overflow)/언더플러(Underflow) 상태 시 발생
• 나눗셈 시 분모가 0일 때 발생
• 기억장치의 제한 영역 외 접근 때 발생
• S/W 동작 중 오류에 따른 중지하고 운영체제로 복귀
기계 검사(Hardware Check) 인터럽트
• 컴퓨터 시스템의 기계적 고장으로 발생하는 인터럽트
문맥 교환: Context Switching
- 다중 프로그래밍을 위한 기법
- CPU가 할당되는 프로세스를 변경하기 위함
- 선점형(Preemptive) 알고리즘 기법의 운영체제에서 지원
- 타이머 등의 외부인터럽트(External Interrupt) 기반의 ISR를 통해 프로세스들의 CPU 점유 를 교환(switching)
- 한 프로세스에서 다른 프로세스로 CPU 할당이 변경되는 과정을 의미
발생 상황
프로세스가 준비 상태에서 실행 상태로 변환될 때
프로세스가 실행 상태에서 준비 상태로 변환될 때
프로세스가 실행 상태에서 대기 상태로 변환될 때
프로세스가 실행 상태에서 종료 상태로 변환될 떄
스케줄링
- 프로세스들에 대하여 CPU에 할당 기회를 결정하고 수행하는 과정
- 프로세스가 작업을 처리하기 위해 CPU 할당을 위한 일정을 처리
목적
- 모든 프로세스들에게 공정하게 배정 => 공평성
- 단위 시간당 최대한 많이 처리 => 처리율 극대화
- 빠른 응답
- 오버헤드 최소화
- 프로세스 무한대기 최소화
오버 헤드란?
오버헤드란 프로그램의 실행흐름에서 나타나는 현상중 하나로 예를 들어 , 프로그램의 실행흐름 도중에 동떨어진 위치의 코드를 실행시켜야 할 때 , 추가적으로 시간,메모리,자원이 사용되는 현상입니다.
한마디로 정의하자면, 오버 헤드는 특정 기능을 수행하는데 드는 간접적인 시간, 메모리 등 자원을 말한다.
예를들어, 10초 걸리는 기능이 간접적인 원인으로 20초걸린다면 오버헤드는 10초가 되는것이다.
참조
https://donggu1105.tistory.com/175
성능 평가 기준
CPU 이용률 => 높을 수록 좋음
처리 능력(Throughput) => 높을 수록 좋음
대기 시간(Waiting Time) : 프로세스가 생성된 후 실행되기 전 까지 대기하는 시간 => 낮을 수록 좋음
응답 시간(Response Time, 반응 시간) : 첫 작업을 시작한 후 첫 번째 출력(반응)이 나오기까지의 시간 => 낮을 수록 좋음 실행 시간(Execution Time) : 프로세스 작업이 시작된 후 종료 되기까지의 시간
반환 시간(Turn-around Time) : 대기 시간을 포함하여 실행이 종료될 때까지의 시간 => 낮을 수록 좋음
스케줄링 기법
선점형 , 비선점형 으로 나뉨
선점형 스케줄링
한 프로세스가 cpu를 할당받아서 실행하고 있을 때 다른 프로세스가 cpu를 사용하고 있는 프로세스를 중지시키고 cpu를 차지할 수 있는 스케줄링 기법을 선점 스케줄링 기법이라고 한다.
• 프로세스가 점유한 CPU를 다른 프로세스가 빼앗을 수 있음
• 대화형, 시간 분할, 실시간 시스템에 적당
• 문맥 교환이 많아 오버헤드가 큼
• 대표적 방식: RR(Round Robin), SRT(Shortest Remaining Time), MFQ(Multi level Feedback Queue)
비선점형 스케줄링
• 점유된 CPU는 다른 프로세스가 빼앗을 수 없음
• 일괄처리 방식에 적당
• 문맥 교환이 적어 오버헤드가 작음
• 대표적 방식: FIFO, SJF, HRN, 우선순위, 기한부 방식
비선점 스케줄링 대표적 방식 정리
선점형 스케줄링 대표방식 정리
'자료구조, 운영체제, 네트워크, 시스템설계 > NCS' 카테고리의 다른 글
운영체제 기술면접 준비6: 가상 기억장치 구역성, 관리 전략, 교체 알고리즘 (0) | 2022.10.10 |
---|---|
운영체제 기술면접 준비5: 메모리(RAM) 관리, 가상 기억장치, 실 기억장치, 단편화, 페이징, 세그멘테이션 (0) | 2022.10.10 |
운영체제 기술면접 준비4: 임계구역, 교착상태 (0) | 2022.10.10 |
운영체제 기술면접 준비2: 운영체제의 발달 과정, 성능 평가 기준, 구성요소 , 프로세서와 프로세스 (0) | 2022.10.09 |
운영체제 기술면접 준비1 :컴퓨터 시스템의 구성, 운영체제 개념, 시스템 소프트웨어란? (0) | 2022.10.08 |