on
운영체제 - 5
KOCW 운영체제 5강
양희재 교수님 강의를 듣고 쓴 글입니다.
지난 시간에 배웠던 것들
OS 역할 중 하나인 “보호”에 대해 배웠다. OS가 만들어졌을 당시 하나의 컴퓨터에는 여러명의 사용자가 동시에 사용하는 환경을 고려했었다.(비싸서 혼자서는 못썼기 때문) → 어떤 한 사람이 잘못된 시도를 하면 그 결과가 모든 사용자들에게 영향을 줄 수 있었다.
따라서 OS는 사용자가 치명적인 영향을 미치는 것을 막을 수 있어야 했다.
-
I/O Protection
예시 상황 : A가 프린트 하고 있는데 B가 프린트 요청을 한 상황
- Application에서 A의 프린트 요청을 받고 OS에게 프린트를 해달라고 요청.
- A의 요청을 받고 프린트 시작. B의 요청이 들어옴. Application에서 B의 프린트 요청을 받고 OS에게 프린트를 해달라고 요청.
- OS는 이미 프린트 중인 사용자가 있으니 B를 대기 시킴. 끝나면 B의 프린트 수행.
IN, OUT
이라는 명령어로 프린트를 하는데, 이 명령어를 privileged instruction으로 설정해서 사용자가 직접 쓰지 못하게 하고 OS만 쓸 수 있게 함으로써I/O Protection
. -
Memory Protection : 프로그램이 다른 메모리에 있는 프로그램이나 OS영역을 침범 못하게 막아준다.
5강 시작
CPU Protection
-
한 사용자(or program)이 실수or고의로 CPU 시간 독점하게 되는 경우가 발생할 수 있음.
Ex) while(n = 1) // 무한loop
-
해결법 → timer를 둬서 해결.
- CPU에게 timer로 일정 시간 경과할 때 마다 Interrupt을 발생시킨다.
- 일정 시간을 넘겼다면 OS의 ISR로 점프.
- ISR은 메모리에 올라온 프로그램들에게 CPU시간이 골고루 가는지 확인한다.
- 어떤 프로그램에 CPU가 묶여있는게 보이면 강제로 다른 프로그램에게 넘겨서 CPU시간을 준다.
여기까지가 다중 user system에서 컴퓨터를 보호하는 3가지 방법이었다.
- Application : 모든 Application은 resource를 사용한다.
- OS : 그 resource를 효율적으로 나눠주는 역할이 OS이다.
- Hardware : resource.
Process Management
- process : memory에서 실행중인 program이다. program in execution.
- 기능
- Process creation/deletion
- process suspend/resume
- Interprocess Communication : IPC 프로세스 간 통신
- Synchronization
- Deadlock handling
Main memory Management
-
기능
-
process에게 메모리 공간 할당해준다.
-
메모리의 어느 부분이 어느 process에게 할당 됐는가를 추적 및 감시한다.
-
process종료 시 메모리 회수.
-
memory의 효과적 사용.
-
Virtual memory : 물리적 실제 메모리 보다 더 큰 용량을 갖도록 한다.
→ main memory는 HDD/SSD에 비해서 용량이 작다. 따라서 main memory보다 더 크게 쓰고 있을 때 virtual memory 쓴다.
-
File Management
- Track/Sector로 구성된 disk를 사용자에게 file이라는 논리적 관점으로 보게 해준다.
- 기능
- File creation/deletion
- directory creation/deletion
- Open, close, read, write, create, delete 기본동작 지원
- Track/Sector - file간의 mapping
- Backup
예전 강의라서 그런지 SSD에 대한 언급이 거의 없다…
Secondary Storage Management
- HDD, SSD 등
- 기능
- 빈 공간 관리
- 저장공간 할당
- Disk scheduling
I/O device Management
- 기능
- device drivers
- I/O device 성능향상 : buffering, caching, spooling(memory 대신 HDD를 중간매체로. Ex:프린트 할 때)
System call
일반 application은 HW resource를 직접적으로 사용하거나 접근할 수 없다는 것을 알게되었다. 접근할 일이 생길 때마다 OS에게 요청해야만 한다는 것도 알게됐다.
System call : 일반 application이 OS가 제공하는 서비스를 받기 위해 호출하는 것.
- Process1 #1 : file 생성을 위해 OS에 system call.
- Process1 #2 : OS는 Hardare resource인 HDD의 공간에 file을 생성.
- Process2 #1 : 프린트 요청을 위해 OS에 system call.
- Process2 #2 : OS는 Hardare resource인 프린터를 사용하여 원하는 문서를 출력.