커널
OS엔 유저모드와 커널모드가 존재!!!!
프로그램 실행 중 인터럽트가 발생하거나 시스템콜을 호출하게 되면 커널 모드로 전환된다.
헉 커널이 핵심이란 뜻이다. 처음 알았다. 그만큼 운영체제에서 커널이 중요하다는 뜻이다!!!!!!
시스템 전반을 관리/감독하는 역할
하드웨어와 관련된 작업을 직접 수행
커널 모드
프로그램의 현재 cpu 상태를 저장함
커널이 인터럽트, 시스템콜 직접 처리 → 처리 완료되면 중단됐던 프로그램의 cpu 상태를 복원
왜 필요하죠?
시스템 보호하기 위해
OS event
OS 이벤트엔 세 종류가 있다. (사실 더 크게 보면 두 종류이다)
인터럽트
보통 하드웨어에 의해 발생, 소프트웨어도 발생 가능
(원문 : Trigger the processor to execute the corresponding interrupt handler routine)
프로세서는 인터럽트 pin(INT pin)을 가지고 있음. 인터럽트가 들어오면 상응되는 pin에서 interrupt handler routine을 실행
멀티 하드웨어를 가지고 있더라도 싱글 INT pin을 가지고 있음. 인터럽트 컨트롤러가 어느 디바이스가 인터럽트를 발생시켰는지 관제함.
- 비동기 인터럽트 : 하드웨어 인터럽트, 에측 불가능한 이벤트 예로 I/O interrupt, keyboard event, network packet arrived, timer ticks 등이 있다.
- 동기 인터럽트(=트랩) : 기준에 또는 시간에 맞춰 수행시키는 것, 명령어 실행 후 그 결과로 발생하는 경우가 많다. 예로 CPU가? 0으로 나누기, 타이머, Page fault, I/O 인터럽트 가 발생한 경우 등이 있다.
트랩
소프트웨어에 의해 발생
OS 루틴을 호출 또는 수학적 에러 catch
exception(internal event)과 시스템콜
동기 이벤트
Invoke OS functionality - it transfer the control to trap handler
💡 뇌피셜
인터럽트는 비동기라 handler routine을 실행한다고 하고 트랩은 동기라 hanlder에게 제어권을 넘긴다는 것 같음
Exception
프로세스가 자동적으로 발생시킴
또 익셉션은 fault와 abort로 나뉨
fault는 회복 가능한 에러
abort는 회복 불가능하거나 어려운 에러
'컴퓨터공학 > 운영체제' 카테고리의 다른 글
[운영체제?] 스레드의 종류(하드웨어스레드, 커널레벨스레드, 유저레벨스레드) (0) | 2023.09.10 |
---|---|
[운영체제] 파일 시스템은 어떻게 구현되어 있는가? (0) | 2023.09.08 |
[운영체제] 파일 시스템 보호 (0) | 2023.09.07 |
[운영체제] 파일 시스템과 디렉토리 구조 (0) | 2023.09.07 |
[운영체제] 페이징 교체 알고리즘 (0) | 2023.05.25 |