코학다식
[OS] 운영체제의 정의와 Interrupt 본문
Operating System
chapter 1-2 (1)
운영체제란 무엇일까?
- 운영체제란 컴퓨터의 사용자와 컴퓨터 하드웨어 사이의 중개인 역할을 하는 프로그램을 말한다.
운영체제의 정의(1)
-
사용자 관점
- 운영체제는 쉬운 사용과 수행을 위한 프로그램이다.
- 시스템 관점
- 운영체제는 자원 할당과 제어를 위한 프로그램이다.
- 모든 자원을 관리한다.
- 효율적이고 공정한 자원 사용을 위해 충돌하는 요구들 사이에서 결정을 내린다.
- 에러와 부적절한 컴퓨터의 사용을 예방하기 위해 프로그램의 실행을 제어한다.
- 운영체제는 자원 할당과 제어를 위한 프로그램이다.
운영체제의 정의(2)
- 보편적으로 받아들여지는 정의는 없고, "운영체제를 구매할 때 판매자가 제공하는 모든 것"이라고 생각하는 게 좋은 추정이다. (하지만 판매자마다 차이가 존재한다.)
- 모바일 운영체제는 핵심 커널(작은 의미의 운영체제)뿐 아니라 미들웨어-데이터베이스, 멀티미디어 등을 포함한 추가적인 서비스를 제공하는 소프트웨어 프레임워크의 집합-를 포함한다. 그래서 모바일 운영체제는 '플랫폼'이라고 불리기도 한다.
- "컴퓨터에서 항상 돌아가는 한 프로그램"은 커널이다. 다른 것은 운영체제에서 돌아가는 시스템 프로그램이거나 응용 프로그램이다.
컴퓨터 시스템 조직
- 컴퓨터 시스템 작동
- 하나 이상의 CPU와 device controller들은 공유된 메모리의 접근을 제공하는 버스를 통해 연결된다.
- CPU들과 device들의 동시 실행은 메모리 사이클을 두고 경쟁한다. (arbitration으로 순서를 조정)
-
컴퓨터 시스템의 작동 상세; I/O device와 CPU간 데이터 주고받기는 운영체제의 중요한 일 중 하나!
-
I/O device와 CPU는 비동기적으로 실행될 수 있다. 즉, 동시에 실행될 수 있다.
비동기적으로 실행된다는 것은 어떤 작업을 요청했을 때 작업이 종료될 때까지 기다리지 않고 다른 작업을 하고 있다가, 요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식으로 실행됨을 의미한다.
-
-
각각의 device controller는 특정 device 타입을 담당한다.
-
각각의 device controller는 로컬 버퍼를 가진다.
-
CPU는 메인 메모리에서 로컬 버퍼로 데이터를 보내거나 로컬 버퍼에서 메인 메모리로 데이터를 가져온다.
-
I/O는 device로부터 controller의 로컬 버퍼까지이다.
-
Device controller는 interrupt를 발생시키며 CPU에게 작업이 끝났음을 알린다.
Interrupt Handling (HW 관점)
-
Interrupt Handling(x86)
-
I/O device들은 IRQ 라인들을 가진다.
-
IRQ들은 PIC(Programmable Interruptible Controller)에 의해 매핑되어 CPU에게 interrupt를 발생시킨다.
-
80386 코어는 INTR(Interrupt) 라인 하나와 INTA(Interrupt Acknowledge) 라인 하나를 가진다.
INTR와 INTA는 CPU에 전송되는 시그널의 이름이다.
-
Interrupt Handling (SW 관점)
- Hardware interrupt의 경우
- Interrupt는 컨트롤을 interrupt service routine(또는 interrupt handler)에 전송하는데, interrupt vector를 사용한다.
- Interrupt vector는 일반적으로 운영체제의 일부분이다.
- Interrupt vector는 운영체제 메모리의 가장 상단에 위치하고 모든 서비스 루틴의 주소를 포함한다.
- Interrupt service routine은 결국 interrupt vector table에 저장된 주소에 존재하는 코드이다.
- 또한, Interrupt architecture는 interrupt된 명령의 주소를 저장하고 있어야만 한다.
- Software interrupt의 경우
- Trap(또는 exception)은 에러나 사용자의 요청에 의해-사용자가 기능 구현하기 위해(e.g. system call)-발생되는 software-generated interrupt이다.
Interrupt의 종류
-
프로그램(Trap 또는 Software interrupt)
- arithmetic overflow
- 0으로 나누기
- illegal instruction 실행
- 사용자의 메모리 공간 이외의 reference
- 사용자의 요청(e.g. system call 또는 monitor call)
-
Hardware
- Timer
- I/O
- Hardware failure
스토리지 구조(Storage Structure)
-
메인 메모리(Main memory)
- CPU가 직접 접근할 수 있는 유일한 거대 스토리지
- 프로그램이 동작할 때 사용되며 일시적인 결과를 저장하는 레지스터보다 크기가 크다.
- 랜덤 액세스
- 대부분 volatile
-
Secondary storage
- 거대한 non-volatile 스토리지 용량을 제공하며 메인 메모리의 확장
- 하드디스크
- rigid metal or glass platters covered with magnetic recording material
- 표면은 논리적으로 트랙(tracks)으로 나뉘고, 트랙은 섹터(sectors)로 나뉜다.
- disk controller는 device와 컴퓨터 사이의 논리적 상호작용을 결정한다.
- SSD(Solid-state disk)
- 하드디스크보다 빠르다.
- 다양한 기술이 사용되며 점점 인기를 얻는 추세
'Fundamentals > OS' 카테고리의 다른 글
[OS] 프로세스 생성과 종료 (0) | 2019.09.26 |
---|---|
[OS] 프로세스와 프로세스 스케줄링 (0) | 2019.09.24 |
[OS] Boot, 운영체제의 구조, VM (0) | 2019.09.19 |
[OS] System Call (0) | 2019.09.17 |
[OS] 운영체제의 구조와 운영체제 보호를 위한 작업들 (0) | 2019.09.10 |