포스트

운영체제 1장 - 운영체제 구조, 동작, 모드

1.3 컴퓨터 시스템 구조


  • 싱글 프로세서 시스템
  • 멀티 프로세서 시스템 : 병렬 시스템
    • 처리율 중가
    • 규모의 경제, 신뢰성 증가
  • 대칭형 vs 비대칭평 멀티 프로세싱 : 같은 CPU가 같은 역할을 하는지, 다른 역할을 하는지
  • 멀티 코어 프로세서와 블레이드 서버
  • Clustered Systems : 각각의 컴퓨터를 단체로 연결함

1.4 운영체제 구조


  • 효율을 위해 멀티 프로그래밍이 필요하게됨
    • Multiprogramming : 여러 작업이 메인 메모리에 저장되고, 동시에 CPU가 다중화됨
    • Job pool
      1. 작업은 처음에 디스크에 유지됨
      2. 전체 작업의 리스트는 메모리에 저장됩니다
      3. 그들 중 하나의 작업이 선택되고 실행됩니다
      4. 작업 스케줄링을 통해 (예를 들어 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가지 모드를 지원함
    1. User mode. 일반 운영프로그램 모드
    2. 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

1 5

  • 유저모드에서 커널모드로 변경 과정
  1. 첫 부팅시, 커널모드로 실행
  2. OS가 적재되고 사용자 모드로 변경 후 사용자 프로그램 실행
  3. 인터럽트 발생시 커널 모드로 변경
  4. 인터럽트가 종료되면, 유저 모드로 변경

1 5_2

  • System call 호출 순서
    1. system call 호출(Interrupt, trap, syscall 명령어 등)
    2. 운영체제의 Service routine으로 제어권을 넘김, CPU의 모드 비트 커널모드로 변경
    3. 서비스 루틴은 매개변수가 정확한지 확인하고, 요청을 실행함
    4. system call 완료 후, 제어권 반환
  • CPU Protection
    • 무한 루프 방지를 위해 타이머를 이용함
  • Timer Interrupt
    • 지정된 시간이 지나면 CPU에 Interrupt 발생시킴
    • OS가 초기 타이머를 세팅해두고, 타이머의 값이 0이 되면 인터럽트를 발생시킴.
    • [[Watchdog Timer]]
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.