코딩 이야기

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

University Study/운영체제

[2022-2] 운영체제 - 220922

always7767 2022. 9. 22. 15:40

1) 입출력 프로그래밍
① 처리 속도의 차이 
전자 장치 : CPU, Main Memory
→ 칩의 고밀도화로 꾸준히 성능(처리속도) 향상
→ CPU와 Main Memory는 동기적 수행* (** CPU와 Main Memory는 어깨동무를 하고 같이 갈 수 있는 사이)
* 동기적 수행 : 시스템 클럭 (clock) 펄스에 맞춰서 동작, 서로 박자를 맞춰 고속으로 동작 가능

기계 장치 :  입출력장치 (Printer, ...)
→ 기계적 작동 처리 특성상 속도 향상의 한계

- CPU와 입출력 장치는 비동기적으로 수행 될 수 밖에 없음
비동기적 수행 : 프린터가 출력하는 동안 CPU는 기다리지 않고 다른 일을 처리
병행적 수행

- 입출력 장치의 느린 속도를 보완하는 방법들 
① 버퍼링(buffering)
→ 주기억 장치의 일부(buffer)를 입출력 데이터를 저장하는 곳으로 활용
→ 채널 (channel)을 이용하여 복잡한 버퍼링도 가능


② 스풀링(SPOOLing)
→ Simultaneous Peripheral Operation On-Line
→ 보조기억장치(HDD, SSD, ...)를 매우 큰 버퍼로 활용
→ 다수의 프로세스가 제한된 입출력 장치를 가상장치(virtual device) 개념으로 공유할 수 있도록 함
→ 운영체제의 일부인 SPOOL 프로그램으로 구현
→ 각보조기억 장치 공간을 가상 입출력 장치로 제공
→ 각 프로세스는 독립적인 입출력 장치를 가진 것으로 동작

③ 채널(channel) : 
→ 입출력 전담 처리기
→ CPU는 채널을 통해서 입출력 처리

2) BIOS (Basic Input / Output System)
- 컴퓨터에 전원 들어왔을 때, CPU가 실행할 명령은?
→ ROM Chip에 저장된 프로그램이 실행됨
→ BIOS
- 부팅에 필요한 프로그램 포함
- firmware : 컴퓨터 칩에 저장된 프로그램

3) 부트 진행 과정 (boot process)
- Power ON
- 부트 로더 초기화
- POST 실행
→ POST (Power-On Self-Test)
→ 교재 P.33 참조
- 다른 BIOS 초기화
- Memory Test
- P&P 장치 초기화
              ...
- OS 초기화

4) 인터럽트 (interrupt)
- 명령을 실행 중인 CPU가 별도로 발생한 상황을 우선 처리하는 매커니즘
① 인터럽트 종류
   1)  입출력 (I/O) 인터럽트
-  입출력 장치의 동작 완료, 오류 발생 등

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

   3)  SVC (SuperVisor Call) 인터럽트
- 사용자 프로그램의 요청 (입출력 실행, 메모리 할당 등...)
- 운영체제의 입장에서 볼 때는 인터럽트이다.

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

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

   6)  재시작 인터럽트
- 시작 버튼 후 다시 시작 버튼 누르기 (수동 재부팅)
- 전원 버튼 5초 이상 누를 경우 (강제 재부팅)

'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] 운영체제 - 220929  (0) 2022.09.29
[2022-2] 운영체제 - 220915  (0) 2022.09.20
Comments