운영체제 서비스

hwakyungChoi·2020년 10월 23일
0

CPU 보호

● 한 사용자가 실수 또는 고의로 CPU 시간 독점
– 예: while (n = 1) … => 무한 루프가 되면서 계속 프로그램을 실행하게 됨.
– 다른 사용자의 프로그램 실행 불가
● 해결법
Timer 를 두어 일정 시간 경과 시 타이머 인터럽트
- 일정 주기로 인터럽터를 줌 => CPU가 인터럽트 서비스 루틴을 줌 => 오랜 시간에 한 프로그램을 돌고 있으면 체크하여 조절하게 함
– 인터럽트 > 운영체제 > 다른 프로그램으로 강제 전환

운영체제 서비스

프로세스 관리
● 주기억장치 관리
● 파일 관리
● 보조기억장치 관리
● 입출력 장치 관리
● 네트워킹
● 보호
● 기타 …

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 로 구성된 디스크를 파일이라는 논리적 관
점으로 보게 => 사용자가 쉽게 사용할 수 있게 됨.
● 주요기능
– 파일의 생성과 삭제 (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 : 헤더를 적게 움직이면서 track/sector를 사용할 수 있는지)

5 입출력 장치 관리

  • 웹캠 카메라 설치 등
    ● I/O device management
    ● 주요기능
    – 장치 드라이브 (Device drivers) – 입출력 장치의 성능향상: buffering(읽은 내용을 메모리에 들고와서 빠르게 읽을 수 있게 함), caching, spooling(하드디스크를 중간 개체로 사용)

시스템 콜

● System calls
– 운영체제 서비스를 받기 위한 호출

  • 일반 애플리케이션 프로그램이 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

예제: MS-DOS

● INT 21H
● 관련 자료
http://spike.scu.edu.au/~barry/interrupts.html
● 예제: 파일 만들기 (Create file)
– AH = 3CH, CX = file attributes(주인이 누구인지, 일반 파일인지, 날짜), DS:DX = file name

예제 : Linux

● INT 80H
● 관련 자료
http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.h
tml
● 예제: 파일 만들기 (Create file)
– EAX = 8, ECX = file attributes, EBX = file name
● 시스템 콜 라이브러리 (library)
http://www.digilife.be/quickreferences/qrc/linux%20system%2
0call%20quick%20reference.pdf

0개의 댓글