observe_db

[OS] 2. 하드웨어 및 소프트웨어(2) 본문

학교 공부/운영체제(OS)(3-1)

[OS] 2. 하드웨어 및 소프트웨어(2)

쩡윤 2023. 3. 20. 23:55

2. 운영체제 지원 하드웨어 요소

 

프로시저 실행모드(executiion mode)

  • 특권 명령어(privileged instruction): 사용자 시스템에서는 사용할 수 없고 관리 프로그램만 사용가능한 명령
    • ex) 시스템파일 수정, 파일 소유자 변경, 디스크 quota 조정, 데몬 시작 및 종료
  • 프로세서에서 복수의 실행모드 제공
    • intel i360 이후 4개 모드 제공
  • 사용자모드(User mode, user state, problem state)
    • 특권 명령어 제외 명령어 실행 가능
  • 커널모드(Kernel mode, supervisor state)
    • 특권 명령어 및 특권 자언(privileged resource) 사용 가능

 

커널모드 전환

원인

  • 인터럽트(interrupt; hardware interrupt)
    • 키보드 입력, 타이머, 마우스 등 외부 주변장치에서 하드웨어적으로 event 발생
    • interrupt vector table에 특정 번호에 대응하는 interrupt handler의 주소 저장
    • instruction 실행 사이에 인터럽트 요청 여부 확인 및 인터럽트 처리기 호출
    • 우선 순위가 높은 인터럽트에 의한 인터럽트 처리기의 인터럽트 가능
  • 트랩(trap; software interrupt)
    • 프로그램 직접 호출, system call
    • 직접 명령어를 사용하여 호출(80x86 CPU에서 int 명령어로 지정 번호 인터럽트 발생)
  • 예외상황(exception)
    • 프로그램 실행 중 비정상 상황에서 발생
    • 0으로 나누기, page fault, overflow등
    • set_trap_gate()의 경우 처리기를 벡터 테이블에 후킹(hooking)
  • +실행 프로그램의 종료

인터럽트 서비스 루틴(interrupt service routine, ISV) 실행과정

  • 커널 모드 전환
  • 레지스터 내용 저장
  • 서비스 처리기 실행

 

메모리 보호(memory protection): 프로세서가 다른 프로세스나 운영체제 영역을 접근하지 못하도록 하는 하드웨어적 기능 제공

 

타이머(timer): 시간간격 타이머는 일정 간격으로 타이머 인터럽트 실행

클럭(clock): time-of-day clock, 현 시점의 시각 및 날짜 확인

 

 

부트스트래핑(bootstrapping): 초기 운영체제 구성요소를 메모리에 적재하는 것

  1. BIOS 실행(Basic Input/Output System)
    • 전원이 켜지면 컴퓨터에 의해 맨 처음 실행되는 부팅 펌웨어
    • BIOS 칩에 저장
    • 하드웨어 점검(POST: Power On Self Test) 및 CPU 레지스터들과 디바이스 초기화 실행
    • 보조기억장치의 부트 섹터(boot sector)로부터 부트스트래핑 코드를 메모리에 적재
  2. 부트스트래핑 코드 실행
    • 보조기억장치에서 운영체제 코드를 메모리에 적재
    • 운영체제 커널 실행

 

버퍼(buffer)

  • 입출력 전송하는 중에 데이터를 일시적으로 보관하는 저장공간
  • 용도
    • 속도차이가 있는 장치간 통신
    • 비동기적(asynchronous)으로 처리할 데이터 저장
    • 비동기적 signal 전달

스풀링(spooling; simultaneous peripheral operations on-line)

  • 프로세스(process)와 저속 입출력장치에 디스크등을 사용하여 버퍼링(buffering)을 구현하는 것
  • 프로세스가 주변장치의 service request 준비 상태에 상관없이 서비스 요청을 할 수 있게 함
  • CPU에 비해 주변장치의 처리 속도가 느려서 발생하는 대기시간을 줄이기 위한 고안
Comments