Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Test Doulbe
- Server
- JPA
- enumSet
- Service 계층 테스트
- mapstruct
- OS
- ObjectMapper
- 인프콘2023
- Test
- backend
- 일상
- FCM
- Java
- 공룡책
- softeer
- Junit 5
- 자바
- ExceptionResolver
- MySQL
- RequestBody
- 테크쇼
- Test code
- 소프티어
- modelmapper
- db
- Spring
- Coputer Science
- JPQL
- proxyFactory
Archives
- Today
- Total
공부내용공유
공룡책 복습하기/ What OS do, Interruption 본문
1.1 what os do
computer system은 크게 4가지로 나뉘어 질 수 있다.
- hardware
- operationg system
- application programs - web browser, complier, proccessor
- user
운영 체제는 일종의 정부 역할이다. 정부는 그 자체로 편의 기능을 제공해준다기 보단 다른 시설에서 편의 기능을 제공할 수 있게 환경을 만들어준다. 운영체제가 그렇다.
기능적인 측면에서 보면 HW 의 효율적인 사용, 어플리케이션의 실행을 해주는
- resource allocator
- control program
이다.
운영체제에 관한 시점에서 컴퓨터에있는 프로그램들을 나눠볼 수 있는데.
- kernel → running all time on the computer 운영체제의 일부다.
- system program → OS의 일부지만 kernel은 아닌 프로그램들이다.
- application program → OS와 관련된 프로그램들 외의 모든 프로그램들이다.
1.2 Computer System Organization
기본적인 구성은
- 1개 이상의 CPU
- 각 component와 memory등을 연결시켜주는 bus
- 각 역할을 맡은 device, device controller들
으로 이루어져 있다.
device driver
CPU와 i/o device들은 동시에 작업할 수 있다.
- CPU는 local buffer to/from main memory로 data 이동을 시키고
- I/O device는 device to/from local buffer 로 data를 이동시킨다.
- device driver → device controller에 대한 정보를 가지고 다른 OS에게 통일된 interface를 제공한다.
- device controller는 i/o 작업을 마치면 device driver에게 작업을 마쳤다고 알린다.
- device driver 는 OS에게 이를 알려 자신에게 할당된 자원을 반납한다.
device driver 는 지금 작업중이거나, 작업 완료했음을 알려주는 정보를 주는데 interrupt 를 통해 이를 전달한다.
Interrupt
CPU는 작업을 하다가 interruption이 발생하면 해당 interruption의 service routine이 저장되어 있는곳으로 가서 작업을 하고 다시 원래 작업으로 돌아온다.
interruption은 굉장히 자주 일어나기때문에 빠르게 처리되어야 한다.
이를 Interrupt vector (service routine의 adderss를 가지고 있는 table ) 를 통해 해결한다.
과정을 간단히 보면
- CPU는 instruction 사이사이에 interruption을 scan한다. (instruction-request line에서)
- interruption을 발견하면 interrupt vector를 통해 interrupt-handler routine으로 이동한다.
- 그 후 필요한 작업을 수행한다.
이과정에서 interrupt handler는
- interruption 작업을 수행하는동안 이전 state 저장
- processing 수행
- state restore 실행
- interrupt instruction에서 interrupted instruction으로 복귀 등을 한다.
- CPU는 2개의 inetrrupt line을 가지고 있는데
- nonmaskable interrupt → unrecoverable memory error을 위한 line이다.
- maskable interrupt → device controller들이 사용한다.
- CPU가 중요한 작업을 할때 사용을 중지할 수 있다.
- 아까 빠른 interruption 처리를 위해 interrupt vector가 있다했는데 실제 컴퓨터에는 더 많은 interruption이 있다.
- 이를 해결하기 위해 interruption chainning 을 사용하는데 몇몇 interruption만 저장하고 그 뒤에 chain처럼 연관된 interruption만 저장하는것이다.
- 또 interruption priority를 통해 먼저 처리해야할 task와 interruption이 들어와도 지금 task를 먼저 처리하는등의 유연함을 제공해준다.
'ComputerScience > Operating System' 카테고리의 다른 글
공룡책 복습하기/ 1.3 Computer System Architecture (싱글 프로세서,멀티 프로세서) (0) | 2023.07.06 |
---|