Multi Programmed System
- 효율성을 위해 필요
- 여러개의 작업들이 동시에 메인메모리에 적재
- cpu는 이 작업들을 실행하며 이용률 증가시킴
- 하드웨어 자원들을 필요할때마다 프로세스가 os에게 지원 요청한 후 실행
즉 목적은 cpu 이용률을 최대화 하는 것..........
Dual- Mode
- cpu 동작모드
- 모드 비트라는 상태비트를 두어 구분
- os/user 를 위해 실행되는 작업 구분 -> 0(moniter)이면 os 1(user)이면 user
- moniter 모드 : 모든 명령 실행권한 o, privileged instructions -> os에 의해서만 실행되는 명령
- 하드웨어는 os에게 특권을 줌, os가 서비스를 요청하면 moniter 모드로 전환해야함
- 인터럽트 발생하면 자동적으로 제어권이 user -> moniter 모드로
- 프로세스들이 서로 방해/독점 하지않고 공존하도록 os가 하드웨어를 관리하는 것임
- 듀얼모드에서 os가 하드웨어 자원들을 protection 해야
Multi Programmed System 환경하에서 각 프로세스들이 제대로 돌아갈 수 있는 것임!!!
protection 기법
하드웨어에 대해 프로그램, 사용자들의 접근을 제어하는 기법
1) i/o protection
1. 모든 i/o 명령어를 privileged 명령으로 바꿈 -> 모든 i/o 명령어를 os만 실행할수 있게 함
2. 프로세스는 r/w 직접 명령 못하고 os에게 요청해야함
3. os는 i/o 컨트롤러에 i/o 명령을 내리는 것
2) memory protection
- 레지스터 사용
-> 사용자 프로세스가 자기 메모리나 다른 메모리에 접근하는지 확인하고 접근시 os가 해당 프로세스 kil
-> 잘못된 메모리 번지 참조하지 않도록 막아줌
3) cpu protection
<<타임쉐어링>>
- cpu랑 os 권한을 a가 얻으면 b,c 프로세스는 계속 가만히 있음
- 만약 a가 계속 자원을 독점하게 된다면?
- 타이머로 해결한다. -> 시간설정해서 시간이 지나면 타임 인터럽트 걸리게 한다.
1. 인터럽트 발생 시 제어권은 os로 감 -> isr이 os에 있기 때문에
2. cpu 할당을 os가 하는데
3. a에게 권한을 주기 전에 타이머로 설정하고 준다.
ex) 0.1초 지난 후 0이 되면 타이머 인터럽트 발생, 자동적으로 a는 멈추고 제어권은 os로 넘어감
os는 타이머 설정 후 b로 넘김.
- load-timer : 타이머 설정 명령어로 privileged istrction
'OS' 카테고리의 다른 글
OS Scheduling (0) | 2024.10.27 |
---|---|
Process, Thread (0) | 2024.10.26 |
저장 구조 및 입출력 (3) | 2024.10.26 |
OS Interrupt, I/O구조 입출력 과정, DMA (0) | 2024.10.26 |
Virtual Memory 가상 메모리 (0) | 2024.10.25 |