일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바
- Mendix
- 집합
- 그래프
- MySQL
- 매개변수 탐색
- domain model
- 백트래킹
- git
- 정렬
- Recursion
- 반효경교수님
- 재귀
- 트리
- 이분탐색
- 해시맵
- 알고리즘
- lcap
- 가중치없는그래프
- 프로그래머스
- 자료구조
- algorithm
- Sort
- microflow
- dfs
- 멘딕스
- 완전탐색
- Bruteforce
- SQL
- 스택
- Today
- Total
mondegreen
(230511) 운영체제 3강. System Struncture & Program Execution 1 본문
(230511) 운영체제 3강. System Struncture & Program Execution 1
앙갱 2023. 5. 13. 18:32
Mode Bit
사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위핸 보호 장치가 필요함에 따라 만들어졌다. 이를 통해 하드웨어 적으로 두 가지 모드의 operation을 지원하는데
0: 모니터모드, 커널모드, 시스템모드: 운영체제가 CPU를 가지고 있는 상태로서 OS코드를 수행하는 상태이다.
1: 사용자 모드: 사용자의 프로그램을 수행하는 상태이다.
보안 이슈가 발생할 수 있는 중요한 명령어는 반드시 OS 모드(모니터 모드)에서만 수행 가능한 특권명령이다.
인터럽트나 Exception(사용자 프로그램이 할 수 없는 요청을 했다든지 등) 발생히 하드웨어가 mode bit을 0으로 바꾼다. 그리고 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 설정한다.
Timer
정해진 시간이 경과하면 운영체제에게 CPU 제어권이 넘어갈 수 있도록 인터럽트를 발생시킨다.
- 타이머는 매 클럭 틱 때마다 1씩 감소된다.
- 타이머 값이 0이되면 타이머 인터럽트를 발생시킨다.
- CPU를 특정 프로그램이 독점하는 것으로부터 보호한다.
타이머는 CPU를 효율적으로 사용하기 위해 즉, time sharing을 구현하기 위해 이용되며 현재 시간을 계산하기 윙해서도 사용된다.
Device Controller (장치 제어기) ; 하드웨어
I/O device controller
- 해당 I/O 장치 유형을 관리하는 일종의 작은 CPU이며 제어 정보를 위해 control register, status register를 가지며 데이터를 저장하는 local buffer를 가진다.
- 입출력은 실제 device와 local buffer 사이에서 발생한다.
입출력이 끝났을 경우 Device controller가 CPU에 interrupt를 발생시켜 그 사실을 알린다.
참고. device driver(장치 구동기)는 OS 코드 중 각 장치별 처리 루틴를 가지고 있는 것으로서 소프트웨어에 속한다.
입출력(I/O) 수행
모든 입출력 명령은 특권 명령이기 때문에 사용자 프로그램이 수행할 수 없고 시스템 콜을 통해 운영체제로 CPU제어권을 넘겨 요청해야 한다.
- 시스템 콜 -> trap을 사용해여 인터럽트 벡터의 특정 위치로 이동 -> 제어권이 인터럽트 벡터가 가리키는 인터럽트 서비스 루틴으로 이동 -> 올바른 I/O요청인지 확인 후 I/O수행 -> I/O 완료 시 제어권을 시스템콜 다음 명령으로 옮긴다.
인터럽트
인터럽트 당한 시점의 레지스터와 program counter를 저장한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.
인터럽트의 정의
1) 인터럽트: 하드웨어 인터럽트로서 하드웨어가 발생시킨 것
2) Trap: 소프트웨어 인터럽트로서 Exception이나 SystemCall에 의해 발생하는 것
* Exception: 프로그램이 오류를 범한 경우
* SystemCall: 프로그램이 커널 함수를 호출하는 경우인데 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것이다.
'Computer Science > 운영체제' 카테고리의 다른 글
(230513) 운영체제 4강. System Structure & Program Execution2 (1) | 2023.05.13 |
---|---|
(230502) 운영체제 2강. Introduction to Operating Systems (0) | 2023.05.02 |
(230418) 운영체제 1강. 강의 소개 (0) | 2023.04.18 |