5.운영체제의 주요 서비스 프로세스, 메모리, 파일관리, 시스템 호출

운영체제 서비스

지금은 서버컴퓨터 하나에 여러명이 동시에 사용하는 구조.
이러한 구조에선 한사람이 잘못된 것을 할 경우 해악이 될 수있다.

다중유저시스템, 다중프로그래밍시스템에서 필요한 보호들

1.입출력장치 보호
A,B가 바로 하드웨어에 접근하지 못하도록 함
어떻게? In(입력),Out(출력) 명령을 특권명령으로 만들어 A,B는 이를 실행하지 못하고 O/S에게 부탁하여 실행토록 함.
그러면 O/S가 프린터를 구동시켜줌

2.메모리 보호
자기에게 넘어간 메모리 접근을 못하도록 하는것.
유저1이 OS영역이나 다른사람 영역을 못들어가도록 함.
어떻게? MMU를 활용하여 base, limit 값을 넘지 못하도록한다. 넘을경우 인터럽트를 발생시켜 프로그램 강제종료

3.CPU 보호
while(a=1)…
위의 경우 CPU가 한 사용자에 독점되게 된다.
어떻게? 타이머를 걸어서 일정시간이 지나면 인터럽트를 걸도록 한다.
인터럽트 서비스 루틴에는 CPU가 골고루 돌아가고 있는지. 한 프로그램에만 돌아가고 있지 않은지 파악하도록 짠다.
인터럽트 > 운영체제 > 다른 프로그램으로 강제 전환

운영체제가 하는일

정부가 하는일과 비슷하다.
자원을 효율적으로 나눠주는 시스템을 OS라 한다.
모든애플리케이션은 하드웨어를사는데 이 하드웨어를 적절하게 분배하는것을 OS라 한다.

프로세스 매니지먼트

이 중 CPU를 나눠주는 부분이 프로세스 매니지먼트

프로세스는 ? 메인 메모리에서 실행중인 프로그램. 실행상태에 있는 프로그램
하드디스크에는 많은 프로그램이 있지만 메인메모리로 올라와 있는 것을 프로세스라 함.
그래서 프로그램 매니지먼트라 하지않고 프로세스 매니지먼트라 함.

프로세스들이 많아지만 교착상태가 발생할 수 있는데 이를 프로세스 관리부분이 처리해준다.

메인메모리 매니지먼트

주기억장치를 나눠주는 부분이 메인메모리 매니지먼트

프로세스한테 메인메모리를 할당한다.
메모리의 어느 부분이 어느 프로세스에게 할당되었는가 추적 및 감시
프로세스 종료 시 메모리 회수 (deallocation)
메모리의 효과적 사용
가상 메모리: 물리적 실제 메모리보다 큰 용량 갖도록

파일 매니지먼트

하드디스크 안에 파일을 관리하는것이 파일 매니지먼트

판 위에 트랙을 만들고 이를 잘라서 섹터라 한다. 즉 트랙, 섹터의 집합

파일을 만들기도 하고 없애기도 하고 디렉토리 생성 삭제에 관여
파일에 대한 기본동작(open, close, read, write, create, delete) 지원
백업(backup)

보조기억장치관리(Secondary storage management)

보조기억장치는 트랙, 섹터의 집합인데 이를 어떻게 관리할것인가

하드 디스크, 플래시 메모리 등

섹터들을 모아서 block이라 하는데 block들에 데이터를 저장하게 되는데 빈 공간 관리, 저장공간 할당, 디스크 스케쥴링을 제공한다.

입출력 장치 관리

장치드라이브 관리(웹켐, 사운드카드 등)
입출력 장치의 성능향상을 위해 버퍼링, 캐싱, 스풀링을 활용한다

스풀링 메모리 대신 하드디스크를 중간 매체로 사용한다.
스풀링 : 프린터는 일반적으로 느리기때문에 씨피유에 저장하기 보다는 씨피유보다 느리고 프린터 보다 빠른 하드디스크에 저장하는것.
빈 공간 관리 (free space management)
저장공간 할당 (storage allocation)
디스크 스케쥴링 (disk scheduling)

네트워킹

보호

기타 등등…

시스템 콜

O/S가 제공하는 여러가지 기능을 받기 위해 호출하는것.

OS에는 여러가지 관리 부서가 있다.
또한 여러가지 프로그램이 메모리로 올라가 여러 프로세스가 존재한다,
각 프로세스는 OS가 제공하는 관리 기능들이 필요한데 이때 이를 사용하기 위한것이 시스템 콜이라 한다.

주요 시스템 콜

– 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

Share