코딩 이야기

[2022-2] 운영체제 - 220929 본문

University Study/운영체제

[2022-2] 운영체제 - 220929

always7767 2022. 9. 29. 14:35

1) 인터럽트
- 명령을 실행 중인 CPU가 별도로 발생한 상황을 우선 처리하는 메커니즘

① 입출력 (I/O) 인터럽트
- 입출력 장치의 동작 완료, 오류 발생 등

② 외부 인터럽트
- 타이머 만료, 사용자 요청 (Ctrl-c, Ctrl-d, ...) 등

③ SVC (SuperVisor Call) 인터럽트
- 사용자 프로그램의 요청 (입출력 실행, 메모리 할당 등...)

④ 기계검사 (machine check) 인터럽트
- H/W 장애, 오류 발생 등

⑤ 프로그램 에러 인터럽트
- divide by 0, stack overflow, ...

⑥ 재시작 인터럽트

2) 인터럽트 처리 과정
- 프로그램 시작 → 인터럽트 발생 → 프로그램 종료 → 인터럽트 처리 시작 → 인터럽트 처리 종료

※ 프로그램 시작, 인터럽트 발생, 프로그램 종료는 프로그램 / 인터럽터 처리 시작, 인터럽트 처리 종료는 인터럽트 처리 루틴이다.

3) 문맥 교환 (context switching)
- 실행 중인 프로그램 상태를 기억시켜 두고, 인터럽트 처리 루틴으로 이동하는 것
- 그림 1-13의 (1), (3)에서 처리해야 하는 중요한 작업
→ 문맥 교환 과정에 PSW (Program Status Word)를 저장, 복원이 중요

4) 프로세스 스레드
- 개요 : 컴퓨터의 자원 중 CPU는 OS의 가장 중요한 관리 대상
- 관리 목표 :
처리율(throughput)의 최대화 : 완료 프로세스 수 / 단위시간
반환시간 (turnaround time)의 최소화 : 프로세스 생성부터 종료까지 걸린 시간
- 프로세스와 프로그램
프로세스 (process) : 주기억 장치에서 실행 중인 프로그램, CPU가 수행하는 작업 단위
프로그램 (program) : 보조기억 장치 (HDD, SSD, ...)에 저장된 프로그램
❗보조기억 장치의 프로그램이 실행되기 위해 주기억장치에 탑재되면 프로세스로 전환❗

5) 프로세스
- 주기억 장치로 탑재된 프로그램

[ 프로세스 구성 요소 ]
코드 영역  : 실행 명령어 코드
데이터 영역 : 전역 변수 / 정적 변수
힙 영역 : 동적 할당
                               ㆍ
                               ㆍ
                               ㆍ
④  스택 영역 : 지역 변수 / 전달 인수

6) 프로세스 상태 변화
- 프로세스는 시작부터 종료까지 여러 상태를 반복적으로 오가면서 실행됨
- 그림 2-2 (프로세스의 상태 전이) 참고

7) 트래픽 제어기 (traffic controller)
- dispatch : 준비 완료 (queue) → 실행  [그림 2-2의 3번 단계]
- timer runout : 실행 → 준비완료 (queue), time slice / time quantum [그림 2-2의 4번 단계]
- block : 실행 → 보류 (I/O 명령 실행 후, 완료 될 때까지) [그림 2-2의 5번 단계]
- wakeup : 보류 → 준비완료, I/O 처리 완료 (interrupt)  [그림 2-2의 6번 단계]

8) PCB (Process Control Block)
- 프로세스에 관한 모든 정보를 저장하는 데이터
- 프로세스 제어 블록(PCB)

포인터 프로세스 상태
프로세스 번호
프로그램 카운터
레지스터
기억장치 경계
개방된 파일 리스트


- 프로세스 생성 시에 만들어지고 프로세스 종료되면 삭제
- 프로세스 상태 변화에 따라 트레픽 제어기가 정보 변경 

9) 프로세스 스케줄링
① 스케줄링의 목적 및 기준
- 목적 : 공정성, 처리 능력 최대화, 응답시간 최소화, 오버헤드(overhead) 최소화, ㆍ
- 기준 : 입출력 위주 vs 연산 위주, 일괄 처리형 vs 대화형,

10) 단계별 스케줄링
① 상위 단계 스케줄링
- 작업 스케줄링 (job scheduling), 프로그램이 프로세스로 전환 되는 것을 승인

② 중간 단계 스케줄링
- 입출력 장치 할당 등의 스케줄링

③ 하위 단계 스케줄링
- 실행 준비 중인 프로세스 (ready process) 목록에서 CPU를 할당할 프로세스를 결정
- 디스패처 (dispatcher)

'University Study > 운영체제' 카테고리의 다른 글

[2022-2] 운영체제 - 221103  (0) 2022.11.03
[2022-2] 운영체제 - 221020  (0) 2022.10.20
[2022-2] 운영체제 - 221013  (0) 2022.10.13
[2022-2] 운영체제 - 220922  (0) 2022.09.22
[2022-2] 운영체제 - 220915  (0) 2022.09.20
Comments