일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 네트워크
- pc
- DEEP LEARNING INSTITUTE
- AI프로그래밍
- nvidia
- Stem
- Back-End
- Ai
- Dit
- 컴퓨터운영체제
- IOT
- Developer
- 딥러닝
- DEEPLEARNINGINSTITUTE
- 컴퓨터네트워크
- 파이썬
- 컴퓨터
- Network
- NVIDIA DLI워크숍
- Python
- NVIDIADLI워크숍
- 대학수업
- DLI워크숍
- 운영체제
- ICT이노베이션스퀘어 인공지능 교육
- 컴퓨터수업
- ICT
- it
- front-end
- DeepLearning
- Today
- Total
Coding Story
[2022-2] 운영체제 - 220929 본문
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 |