출처
https://www.youtube.com/watch?v=5tj5gPH-t1g&list=PLK4xviZcdB9ieuusJ5j1UYZMFTuAgZCq8&index=5
운영체제 서비스
- 프로세스 관리
- 주기억장치 관리
- 파일 관리
- 보조기억장치 관리
- 입출력 장치 관리
- 네트워킹
- 보호
- 기타
운영체제가 하는 일은?
우리나라 정부가 하는 일과 굉장히 비슷하다.
정부가 하는 특별한 일은 없는 것 같아도 정부가 없으면 나라가 있을 수 없다.
컴퓨터에는 하드웨어라고 하는 자원이 있다. 여기에는 CPU, 메인 메모리, 프린터, 키보드, 마우스, 디스크 등 많은 자원들이 존재한다.
이런 많은 자원들을 Appication 프로그램들(게임, DB, hwp 등)이 사용한다.
이 자원을 효율적으로 나누어주는 역할을 하는 것이 운영체제이다.
어떤 자원을 할당하는지에 따라 운영체제 부서도 나뉠 수 있는데 CPU 자원을 할당하는 운영체제 서비스를 프로세스 관리(Process Management)라고 하고, 메인 메모리 자원을 할당하는 운영체제 서비스를 주기억장치 관리(Main Memory Management)라고 하며 하드디스크 내에 있는 파일을 관리하는 운영체제 서비스를 파일 관리라고 한다.
디스크라고 하는 것은 트랙과 섹터의 집합인데, 이것을 관리하는 운영체제 서비스를 보조기억장치 관리라고 한다.
프린트, 키보드, 마우스 등 입출력 장치를 관리하는 운영체제 서비스를 입출력 장치 관리라고 한다.
컴퓨터끼리 서로 통신하는 기능을 관리하는 운영체제 서비스
보호하는 기능을 관리하는 운영체제 서비스
구체적으로 각 부서에서 어떤 일을 할까?
1. 프로세스 관리 (Process management)
프로세스(Process)란?
메모리에서 실행중인 프로그램(program in execution)을 말한다.
주요기능
- 프로세스의 생성(creation) 및 소멸(deletion)
- 프로세스 활동 일시 중지(suspend) 및 활동 재개(resume)
- 프로세스간 통신(interprocess communication; IPC)
- 프로세스간 동기화(synchronization)
- 교착상태 처리(deadlock handling)
2. 주기억장치 관리 (Main memory management)
주요기능
- 프로세스에게 메모리 공간 할당(allocation)
- 메모리의 어느 부분이 어느 프로세스에게 할당되었는가 추적 및 감시
- 프로세스 종료 시 메모리 회수(deallocation)
- 메모리의 효과적 사용
- 가상 메모리 : 물리적 실제 메모리보다 큰 용량을 갖도록 해줌
3. 파일 관리 (File management)
디스크는 Track/sector라는 물리적 단위로 구성되어 있다.
O/S의 파일 관리는 디스크를 파일(file)이라는 논리적 관점으로 보이게하여 하드 디스크를 쉽게 사용할 수 있게 해준다.
주요기능
- 파일의 생성(creation) 및 삭제(deletion)
- 디렉토리(directory)/폴더(folder)의 생성 및 삭제
- 기본동작지원 : open, close, read, write, create, delete
- Track/sector - file 간의 매핑(mapping)
- 백업(backup)
4. 보조기억장치 관리 (Secondary storage management)
보조기억장치 : 하드 디스크, 플래시 메모리 등
주요기능
- 빈 공간 관리(free space management)
- 저장공간 할당(storage allocation)
- 디스크 스케쥴링(disk scheduling)
5. 입출력 장치 관리 (I/O device management)
I : Input 입력
O : Output 출력
주요기능
- 장치 드라이브(Device drivers)
- 입출력 장치의 성능향상 : buffering, caching, spooling
예를 들어, 입출력 장치 관리는 하드웨어 연결을 위해 usb를 꽂았을 때 장치 드라이브를 깔아 관리하는 역할을 한다.
buffering : 입출력 장치에서 읽은 내용을 일단 메모리에 저장하고, 한번 저장한 메모리는 빨리 읽을 수 있다.
spooling : 메모리 대신에 하드 디스크를 중간 매체로 사용하는 것. 예를 들어, 프린터로 글자를 찍을 때, 프린트가 다 될때까지 CPU가 기다리면 너무 늦기 때문에 일단은 디스크에 저장한다. 그리고나서 디스크에 있는 내용을 천천히 프린터로 전송하고, 그동안 CPU는 다른 일을 할 수 있다.
시스템 콜 (System calls)
일반 application 프로그램이 운영체제(O/S) 서비스를 받기 위해서 호출하는 것을 말한다.
P1 = Process1
P2 = Process2
P3 = Process3
프로그램이 메인 메모리로 올라가면 프로세스라고 부른다.
주요 시스템 콜
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/detache devices
Information : get/set time, get/set system data
Communication : socket, send, receive
end : 프로세스 정상 종료
abort : 프로세스 강제 종료
load : 하드디스크에 있는 프로그램을 메인 메모리로 가져옴
execute : 프로세스 실행
create : 프로세스 생성
terminate : 프로세스 정상 종료
get/set attributes : 프로세스 속성(메모리를 얼마나 사용하고 있는지, id는 뭔지 등)
allocate : 메모리 할당 요청
free : 메모리 영역 해제
시스템 콜 예제 : 파일 만들기 (Create file)
하드디스크에 파일을 만들고자 한다.
일반 유저는 H/W에 직접 접근할 수 없기 때문에 운영체제(O/S)에게 파일 생성을 요청(System call)해야 한다.
메모리 100번지에 'AAAA'라는 이름의 파일을 아무 속성 없이 생성해라.
예제① 운영체제 : MS-DOS
INT 21H (인터럽트 호출 번호)
AH = 3CH (3C = Create file)
CX = file attributes
DS:DX = file name
유저가 입력해야 하는 코드(답)
mov CX, Φ
mov dx, 100
mov ah, 3c
int 21
CX(파일속성)에 아무 속성이 없다는 뜻으로 Φ(zero)를 입력한다.
dx 에는 파일 이름이 적혀있는 주소 100을 입력한다.
ah 에는 파일 생성 명령인 3c를 입력한다. (3ch : 16진수라는 의미)
int 에는 ms-dos의 인터럽트 호출번호인 21을 입력한다. (소프트웨어 인터럽트를 반드시 걸어줘야한다.)
예제 ② 운영체제 : Linux
INT 80H
EAX = 8
ECX = file attributes
EBX = file name (이름이 적혀있는 주소)
유저가 입력해야 하는 코드(답)
mov eax, 8
mov ecx, Φ
mov ebx, 100
int 80h
'운영체제 OS (Operating System)' 카테고리의 다른 글
[운영체제] #03-3 프로세스 관리 : 프로세스의 정의, CPU 스케쥴러, 멀티프로그래밍 (0) | 2021.08.09 |
---|---|
[운영체제] #03-1 이중모드, 하드웨어 보호 (0) | 2021.07.30 |
[운영체제] #02-3 고등운영체제, 인터럽트 기반 운영체제 (0) | 2021.07.20 |
[운영체제] #02-2 운영체제의 역사 (0) | 2021.06.24 |
[운영체제] # 02 - 1 운영체제 서론 / 운영체제 정의와 역할 (0) | 2021.06.23 |