-
3. Dual Mode / System Call / OS ServiceCS/OS 2022. 5. 11. 15:01
앞선 장에서 언급하였듯이, OS는 App 이 Hardware 접근을 직접하지 못하도록 한다고 하였다.
사용자가 하드웨어의 자원에 접근하는 것은 매우 위험한 동작이다.
만약에 Hardware 접근을 직접 할 수 있다면, 서버 컴퓨터에 접근하여 강제 종료 명령어를 넣는다던지 하여 동작을 멈출 수 있다.
이러한 문제들을 막기 위해 Dual Mode라는 개념이 나왔다.
Dual Mode
CPU 내부의 레지스터(register)의 비트(bit)를 활용하여 플래그(flag)
User Mode = 0 / Kernel Mode = 11. User Mode
Application 과 같이 User가 사용하고 있는 영역
Hardware resource 접근 X ( 요청하려면 System Call 필요 )
2. Supervisor Mode( Privileged Mode )
관리자 모드에서만 내릴 수 있는 명령을 Privileged instruction이라고 하며, STOP / HALT / RESET / SET_TIMER 등의 명령어가 존재한다.
User Mode에서 Privileged instruction 내리면 CPU에서 Internal Interrupt 를 발생시켜 Program을 종료시킨다.
일반적으로 App이 실행된 뒤에 Hardware를 접근하는 경우에 Kernel 영역 내에 Os에 요청하여 처리한다. (System Call)
Dual Mode Example 애플리케이션이 실행하는 동안에는 위와 같은 모드 변경이 반복적으로 일어나는 것을 볼 수 있다. 대부분의 CPU는 이중 모드를 지원한다.
System Call ( Software Interrupt )
OS Kernel이 제공하는 서비스에 대해, Applicatoin의 요청에 따라 커널에 접근하기 위한 인터페이스
->OS Service를 접근하기 위한 유일한 수단입니다.
프로그램을 실행하거나 프로그램이 컴퓨터 자원을 사용하기 위해서는 System Call을 통해 Kernel에 Resource 요청을 해야 합니다.OS 내에 어떤 Service를 사용 가능한건지 알아보자.
OS Service
OS service 1. Process Management
프로세스는 실제 메인 메모리에서 실행 중인 프로그램(program in execution)을 말한다.
프로그램은 하드디스크와 같은 보조기억장치에서 아무런 동작을 하지 않는 상태이다.
주요 기능
-> Process Create / Delete / Suspend / Resume / IPC(프로세스 통신) / Process Sync / DeadLock handling
2. Main Memory Management
주요 기능
-> Process에게 Memory allocate / deallocate
Virtual Memory / Process 별 Memory Trace
3. File Management
디스크는 물리적으로 Track과 sector로 구성되어 있으며, 여기서 파일이라는 논리적 관점으로 데이터를 바라보고 관리
File Create / Delete
Directory Create / Delete
open / close / read / write / create / delete
backup / file mapping
4. Secondary store management
보조기억장치는 대표적으로 하드 디스크, 플래시 메모리(주로 스마트폰에 사용)가 있다.
아무 것도 저장되어 있지 않는 공간을 block이라 하는데, 보조기억장치 관리는 이를 관리하는 것이다.
Free Space management / Storage allocation / Disk Scheduling
5. I/O device management
입출력 장치의 성능향상: buffering, caching, spooling
6. System Call
유저 프로세스에서 운영체제 서비스를 필요로 할 때 이를 받기 위해 사용하는 호출이다.
- Process: end(정상 종료), abort(강제 종료), load, execute, create, terminate, get/set, attributes, wait event, signal event
- Memory: allocate, free
- File: create, delete, open, close, read, write, get/set attributes
- Device: request, release, read, write, get/set attributes, attach/detach devices
- information: get/set time, get/set system data
- Communication: socket, send, receive
Reference
[운영체제(OS)] 4. 운영체제 서비스
운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다. 하드웨어 자원은 CPU, 메인 메모리, 하드디스크, 키보드, 마우스, 프린터 등이 존재한다. 이러
velog.io
https://latter2005.tistory.com/43
[운영체제] 시스템 콜과 인터럽트
시스템 콜 정의를 보면 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스라고 합니다. 간단하게 말하자면 운영체제 서비스를 접근하
latter2005.tistory.com
'CS > OS' 카테고리의 다른 글
XV6 - 이론 정리_2 (0) 2022.05.13 XV6 - 이론 정리_1 (0) 2022.05.13 2.OS 역사 (0) 2022.05.06 1. 운영체제(OS)란? (0) 2022.05.06 6. Thread (0) 2022.04.27