운영체제 1장 - 운영체제 구조, 동작, 모드
1.3 컴퓨터 시스템 구조
- 싱글 프로세서 시스템
- 멀티 프로세서 시스템 : 병렬 시스템
- 처리율 중가
- 규모의 경제, 신뢰성 증가
- 대칭형 vs 비대칭평 멀티 프로세싱 : 같은 CPU가 같은 역할을 하는지, 다른 역할을 하는지
- 멀티 코어 프로세서와 블레이드 서버
- Clustered Systems : 각각의 컴퓨터를 단체로 연결함
1.4 운영체제 구조
- 효율을 위해 멀티 프로그래밍이 필요하게됨
- Multiprogramming : 여러 작업이 메인 메모리에 저장되고, 동시에 CPU가 다중화됨
- Job pool
- 작업은 처음에 디스크에 유지됨
- 전체 작업의 리스트는 메모리에 저장됩니다
- 그들 중 하나의 작업이 선택되고 실행됩니다
- 작업 스케줄링을 통해 (예를 들어 I/O를 위해) 대기해야 할 때, OS가 다른 작업으로 전환됨
- Time-Sharing 혹은 Multi-Tasking
- 멀티프로그래밍의 논리적 확장 버전
- CPU가 여러 작업간에 매우 자주 전환되어 사용자가 모두 동시에 실행되도록 느낌
- 응답 시간은 1초 이내
- 프로세스 : 메모리에 적재된 프로그램
- CPU 스케줄링 : 자원 활용을 위해서
- 스와핑 : 효율적인 메모리 관리를 위해
- 가상 메모리 : 메모리가 부족한 경우
1.5 운영체제 동작
- 운영체제 동작은 Interrupt Driven 방식
- I/O Request 는 하드웨어 Interrupt
- 소프트웨어 에러는 internal Interrupt(exception, trap)
- OS 서비스 리퀘스트는 소프트웨어 인터럽트(system call)
- 자원을 공유하므로 프로그램의 버그에 의해 다른 프로세스가 영향을 받을 수 있음
- 즉, 자원 공유는 어느정도의 보안이 필요함
Dual-Mode operation
- 대부분의 CPU들이 최소 2가지 모드를 지원함
- User mode. 일반 운영프로그램 모드
- Kernel mode. 운영체제 OS (supervisor, monitor, privilaged mode 등)
- 두가지 모드 구붕는 CPU의 mode bit를 이용해 구분함
- kernel(0), user(1) 처럼
- 듀얼모드를 통해 운영체제가 시스템 구성 요소를 보호할 수 있음
Priviledged Instruction
- 권한 명령어
- 하드웨어는 커널모드에서만 실행 가능한 권한 명령어를 실행함
- 유저모드에서 사용하려하면 에러 발생시킴
- I/O 명령어, 타이머, 인터럽트, MMU 레지스터
User Mode와 Kernel Mode 차이
- 유저 모드
- 유저 프로그램을 실행
- 권한 명령어 사용 불가
- 메모리 특정 부분은 접근 불가
- 커널 모드
- OS는 커널 모드에서 실행
- 권한 명령어 실행 가능
- 인터럽트가 발생시 커널 모드로 강제 변경됨
Transition from User to Kernel Mode
- 유저모드에서 커널모드로 변경 과정
- 첫 부팅시, 커널모드로 실행
- OS가 적재되고 사용자 모드로 변경 후 사용자 프로그램 실행
- 인터럽트 발생시 커널 모드로 변경
- 인터럽트가 종료되면, 유저 모드로 변경
- System call 호출 순서
- system call 호출(Interrupt, trap, syscall 명령어 등)
- 운영체제의 Service routine으로 제어권을 넘김, CPU의 모드 비트 커널모드로 변경
- 서비스 루틴은 매개변수가 정확한지 확인하고, 요청을 실행함
- system call 완료 후, 제어권 반환
- CPU Protection
- 무한 루프 방지를 위해 타이머를 이용함
- Timer Interrupt
- 지정된 시간이 지나면 CPU에 Interrupt 발생시킴
- OS가 초기 타이머를 세팅해두고, 타이머의 값이 0이 되면 인터럽트를 발생시킴.
- [[Watchdog Timer]]
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.