운영체제 서비스
1. 프로세스 관리
CPU 자원 관리
2. 주기억장치 관리
메인 메모리 자원 관리
3. 파일 관리
보조기억장치(HDD)내의 파일 자원을 관리
4. 보조기억장치 관리
Track, Sector 의 관리
5. 입출력 장치 관리
프린터, 키보드, 마우스 등을 관리
6. 네트워킹 관리
네트워크 관리
7. 보호기능
사용자 보호
* 프로세스
메모리에서 실행 중인 프로그램
* 프로세스 생성, 소멸
* 프로세스 활동 일시 중지, 재개
* 프로세스간 통신
* 프로세스간 동기화
* 교착상태 처리 (병목현상) -> 메인 메모리에 프로세스가 많아지면 이를 관리해줘야 함
* 주기억장치 관리
* 프로세스에게 메모리 공간 할당
* 메모리의 어느 부분이 어느 프로세스에 할당 되었는가 추척 및 감시
* 프로세스 종료 시 메모리 회수
* 메모리의 효율적 사용
* 가상메모리 : 물리적 실제 메모리보다 큰 용량을 사용할 수 있도록
* 파일 관리
Track/Sector 로 구성된 디스크를 파일이라는 논리적 관점으로 볼 수 있도록한다.
* 파일의 생성, 삭제
* 디렉터리(폴더)의 생성, 삭제
* 기본동작지원 : Open, Close, Read, Write, Create, Delete
* Track/Sector - File 간의 매핑
* 백업
* 보조기억장치 관리
HDD, Flash Memory 등...
* 빈 공간 관리
Sector의 집합을 Block 이라고 하고, Block 에 데이터를 저장한다. 처음에는 Block이 비어있지만
쓰다보면 사용 중인 공간, 비어있는 공간이 나타나고 이를 관리한다.
* 저장공간 할당
* 디스크 스케줄링
* 입출력 장치 관리
* 장치 드라이브
H/W|OS|Dirver 의 순으로 엮여있다.
* 입출력 장치의 성능향상
Buffering(입출력 장치에서 읽은 내용을 메모리로 가져오기)
Caching(버퍼링과 비슷)
Spooling(메모리 대신, HDD(디스크)에 저장)
* 시스템 콜
운영체제 서비스를 받기 위한 호출
* 주요 시스템 콜
Process : end, abort, load, execute, create, terminate, get/set, attributes, wait, event, signal event
Memory : alloacte, free
File : create, delete, open, close, read, write, get/set attributes
Device : requests, release, reade, write, get/set attributes, attach/detache devices
Informaint : get/set time, get/set system data
Coummunication : socket, send, receive
인터럽트 vs 시스템 콜
인터럽트는 프로세서가 프로그램을 실행 도중 H/W, S/W의 문제 때문에 프로그램이 실행되고 있던
순서를 변경하여 처리
시스템 콜
응용프로그램이 자원을 사용할때 시스템 콜을 사용
일반 User가 H/W를 이용하고 싶을때 OS에 시스템콜을 보냄
MS-DOS 운영체제를 예시로,
cx = file attributes
ds:dx = file name
--------------------------
mov cx, 0
mov dx, 100 //이름이 적혀있는 주소
mov ah, 3c
int 21 //소프트웨어 인터럽트
------------------------------------
를 실행하면 AAAA라는 파일이 생성된다.
Linux 환경에서의 파일 만들기 예시를 보면
EAX = 8
ECX = file attributes
EBX = file name
---------------------------------------
mov eax, 8
mov ecx, 0
mov ebx, 100 //이름이 적힌 주소
int 80h //소프트웨어 인터럽트
----------------------------------