728x90

운영체제 서비스

 

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 //소프트웨어 인터럽트

----------------------------------

 

728x90
복사했습니다!