OS ch3

3장

1.5 이중모드

  • 한 컴퓨터를 여러 사람이 동시에 사용하는 환경/ 한 사람이 여러개의 프로그램을 동시에 사용

    → 한 사람의 실수가 프로그램 전체에 영향을 줄 수 있음 ex) STOP, HALT

  • 이러한 실수를 방지하기 위해 User modeSupervisor mode 로 나뉨 → 이중모드

    • CPU가 동작하는 모드 분리
    • 사용자모드
      • 사용자 프로그램 실행될 때는 사용자모드
      • 운영체제 서비스가 끝나면 다시 사용자모드
    • 관리자모드
      • privileged instructions (특권명령)을 내릴 수 있음 ex) STOP, HALT, RESET 등…
      • 운영체제 서비스 실행될 때는 관리자모드
      • 하드웨어/소프트웨어 인터럽트 발생하면 관리자모드

이중모드 구현 원리

  • CPU 레지스터에서 모드를 나타내는 플래그(flag) 를 둔다

일반적인 프로그램의 실행

3/Untitled.png

  1. 프로그램 적재
  2. user mode → system call → system mode (ISR) → user mode → …
    • 만약에 유저모드인에 stop 과 같은 특권명령을 실행하려고 하는 경우 → O/S는 내부 인터럽트 발생했다고 판단 → ISR → 잘못 신호를 보낸 프로그램 종료시킴

1.6 하드웨어 보호

  • I/O device protection
    • 사용자의 잘못된 입출력 명령
    • 다른 사용자의 입출력, 정보 등에 방해가 되는 경우

      ex) 유저가 동시에 프린터에 접근하려고 할때/ 다른 사람의 파일 읽고 쓰는 경우

    • 해결법
      • 입출력 명령을 특권명령으로
      • 입출력을 하려면 1. 운영체제에게 요청 → 2. system mode → 3. 운영체제가 입출력 대행 → 4. 입출력 끝나고 다시 유저모드
      • 올바른 요청이 아니면 운영체제가 거부 (ISR 이용)
      • 사용자가 입출력 명령을 직접 실행하는 경우 → Privileged instruction violation , 잘못 요청한 프로그램 종료
  • memory prrotection

    https://codemcd.github.io/study/OperatingSystem-3장-이중모드와-보호/

    3/Untitled%201.png

    CPU 는 address bus 를 통해 메모리 주소에 접근함

    3/Untitled%202.png

    address bus 중간에 설치된 하드웨어 칩으로서 두 개의 레지스터를 통해 해당 프로그램의 주소 범위를 저장

    • 다른 사용자 메모리, 운영체제 영역 메모리 접근 금지
    • 운영체제 해킹 외 프로그램 해킹
    • 해결법
      • MMU(Memory Management Unit): CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품
      • MMU 는 해당 메모리의 base/limit 을 설정, 특정 프로세스가 실행 했을 때 MMU 범위에 포함되면 실행시키고 아니면 접근하지 못하도록 설정
      • MMU 설정 명령은 운영체제만 변경가능
      • 다른 사용자 or 운영체제 영역 메모리 접근 시도하면? → Segment violation , 프로그램 강제 종
  • cpu protection
    • 한 사용자의 실수 혹은 고의로 CPU 시간 독점 ex) while (n=1)…
    • 다른 사용자의 프로그램 실행 불가
    • 해결법
      • Timer 를 두어 일정 시간 경과시 타이머 인터럽트 발생
      • 인터럽트 → 운영체제 → 다른 프로그램으로 강제 변환

1.7 운영체제 서비스

  1. 프로세스 관리
    • 프로세스: 메모리에서 실행중인 프로그램 = prgram in execution
    • 주요기능: 프로레스 생성,소멸, 활동 일시중지/재개, 통신, 동기화, 교착상태 처리
  2. 주기억장치 관리
    • 주요기능
      • 프로세스에 메모리 공간 할당
      • 메모리의 어느부분이 어느 프로세스에 할당되었는가 추적 및 감시
      • 프로세스 종료시 메모리 환수
      • 메모리의 효과적 사용
      • 가상 메모리: 하드디스크를 마치 메인메모리처럼 사용
  3. 파일 관리
    • Track/sectror 로 구성된 디스크를 파일이라는 논리적 관점으로 보게 함
    • 주요기능
      • 파일의 생성과 삭제
      • 디렉토리의 생성과 삭제
      • track/sector 와 file 간의 매핑
      • 백업
  4. 보조기억장치 관리 (트랙, 섹터 고르기..)
    • 하드 디스크, 플래시 메모리 등
    • 주요기능
      • 빈 공간 관리 → 섹터
      • 저장공간 할당
      • 디스크 스케줄링 → block 들이 흩어져 있는데 헤더를 조금 움직이면서 원하는 트랙/섹터를 읽을 수 있게함
  5. 입출력 장치 관리
    • 주요기능
      • 장치 드라이브
      • 입출력 장치 성능향상

        https://proneer.tistory.com/entry/버퍼링과-스풀링

        • buffering: 입출력장치에서 읽은 내용을 메모리에 들고옴 → 빠르게 읽을 수 있게
        • caching
        • spooling: CPU 대신에 디스크에 저장,

        컴퓨터와 입출력 장치를 직접 연결하지 않고 비교적 입출력 장치보다 빠른 처리 속도를 갖는 물리적인 저장 장치를 위치시킨 것

  6. 네트워크
  7. 보호

1.8 시스템콜

  • 운영체제 서비스를 받기 위한 호출 (프로세스가 OS 에 요청)