● 한 사용자가 실수 또는 고의로 CPU 시간 독점
– 예: while (n = 1) … => 무한 루프가 되면서 계속 프로그램을 실행하게 됨.
– 다른 사용자의 프로그램 실행 불가
● 해결법
– Timer 를 두어 일정 시간 경과 시 타이머 인터럽트
- 일정 주기로 인터럽터를 줌 => CPU가 인터럽트 서비스 루틴을 줌 => 오랜 시간에 한 프로그램을 돌고 있으면 체크하여 조절하게 함
– 인터럽트 > 운영체제 > 다른 프로그램으로 강제 전환
프로세스 관리
● 주기억장치 관리
● 파일 관리
● 보조기억장치 관리
● 입출력 장치 관리
● 네트워킹
● 보호
● 기타 …
Process management
● 프로세스 (process)
– 메모리에서 실행 중인 프로그램 (program in execution)
● 주요기능
– 프로세스의 생성, 소멸 (creation, deletion) – 프로세스 활동 일시 중지, 활동 재개 (suspend, resume) – 프로세스간 통신 (interprocess communication: IPC) – 프로세스간 동기화 (synchronization) – 교착상태 처리 (deadlock handling)
- 데드락 : 메인메모리에 프로세스가 많아지고 교착상태가 되는 것이 데드락
Main memory management
● 주요기능
– 프로세스에게 메모리 공간 할당 (allocation) – 메모리의 어느 부분이 어느 프로세스에게 할당되었는가 추적 및 감시
– 프로세스 종료 시 메모리 회수 (deallocation) (메모리 회수가 잘 안되면 사용하지 못하게 됨) – 메모리의 효과적 사용
– 가상 메모리: 물리적 실제 메모리보다 큰 용량 갖도록
File management
● Track/sector 로 구성된 디스크를 파일이라는 논리적 관
점으로 보게 => 사용자가 쉽게 사용할 수 있게 됨.
● 주요기능
– 파일의 생성과 삭제 (file creation & deletion) – 디렉토리(directory)의 생성과 삭제 (또는 폴더 folder) – 기본동작지원: open, close, read, write, create, delete
– Track/sector – file 간의 매핑(mapping) – 백업(backup)
Secondary storage management – 하드 디스크, 플래시 메모리 등
● System calls
– 운영체제 서비스를 받기 위한 호출
● INT 21H
● 관련 자료
– http://spike.scu.edu.au/~barry/interrupts.html
● 예제: 파일 만들기 (Create file)
– AH = 3CH, CX = file attributes(주인이 누구인지, 일반 파일인지, 날짜), DS:DX = file name
● 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