본문 바로가기
Study/운영체제

1. Introduction - Operating system structure and operation

by 이미뇨 2023. 4. 11.

1.Multiprogramming

Motivation : single user CPU 및  I/O devices 를 항상 사용중으로 유지 못함

Multiprogramming:

  • 하나의 컴퓨터 시스템에서 여러 프로그램이 동시에 실행될 수 있도록 하는 기술
  • CPU의 시간을 분할하여 각 프로그램에게 할당
  • 프로그램들이 서로 독립적으로 실행
  • Multi-State : 여러 프로그램이 동시에 메모리에 상주하고, 실행 가능한 상태로 대기
  • Multiprogramming은 jobs (code and data)을 구성하므로 CPU에는 항상 실행할 작업이 있음
  • 시스템의 전체 작업 중 일부가 메모리에 저장
  • 하나의 작업을 선택하고 scheduling을 통해 실행
  • 작업이 대기해야 하는 경우 OS가 작업 전환 (기다려야 할때만 스위칭)

2.Multitasking

Timesharing (multitasking): 스위칭 엄청 빠르게 하는것, CPU switches jobs so frequently, interactive

  • 응답 시간은 1초 미만이어야 한다.
  • CPU scheduler 가 실행 준비된 작업을 선택한다.

3.Virtual Memory

Main memory는 multiprogramming/multitasking system 의 모든 프로세스를 수용하기에 충분하지 않음

=> 메모리 부족 문제 발생!

 

해결방법

  • Swapping : 메모리 내용이 실행되도록 안팎으로 이동
  • Virtual memory : 메모리에 완전히 포함되지 않은 프로세스를 실행할 수 있다.

Virtual memory : 운영 체제에서 제공하는 기능으로, 물리적인 메모리(RAM)보다 큰 용량의 가상 메모리를 제공

  • 하드 디스크나 SSD와 같은 보조 기억 장치를 이용하여 구현
  • 디스크나 SSD에 대한 액세스 속도가 느리기 때문에 성능 저하가 발생할수 있음

4.Operating System Operations

최신 os는 interrupt-driven programs 이다.

  • Events는 interrupt handlers가 처리하는 interrupts에 의해 전달된다.
  • H/W and S/W resources가 공유된다.

* Problem : 프로세스의 오류로 인해 전체 시스템이 손상될 수 있다

 

multi-user OS의 필수 요구사항 : 프로그램 오류가 다른 프로그램에 영향을 미치지 않아야 한다.

  • 위험한 instruction -> dual mode operation
  • CPU에 대한 제어 유지 -> timer
[ 노래방 비유 ]
노래방에는 두가지 빌런이 있다.

1.stop 버튼을 누르는 빌런 (dual mode operation)
2.마이크를 놓지 않는 빌런 (timer)

5.Dual-mode operation

H/W 지원 필요

  • User mode (Privileged Program 실행 X)
    • 사용자 정의 코드(응용 프로그램)
    • 다른 시스템에 손상을 줄 수 있는 권한 있는 지침 금지
      •  I/O 명령, 타이머 명령 등…
      • OS 시스템 호출을 통해서만 권한 있는 명령을 호출할 수 있다
  • Kernel mode (supervisor mode, system mode, privileged mode) (Privileged Program 실행 O)
    • OS 코드
    • 권한 있는 지침이 허용

 

장점

: H/W에서 모드 위반 오류를 감지하고 OS에서 처리할 수 있다.

6.Timer

우리는 운영 체제가 CPU에 대한 제어권을 유지하도록 해야 한다.

 

Timer

  • 지정된 기간이 지나면 컴퓨터를 중단하도록 설정
  • 주기는 fixed(예: 1/60초) 또는 variable(예: 1~1000msec)일 수 있다.
  • variable timer는 일반적으로 fixed-rate clock과 counter에 의해 구현
    • 운영 체제가 카운터를 설정합니다.
    • 시계가 똑딱거릴 때마다 카운터가 감소합니다.
    • 카운터가 0에 도달하면 인터럽트가 발생한다.

프로그램의 장시간 실행으로부터 보호

  • OS가 사용자 프로세스를 제어하기 전에 타이머가 미리 정의된 기간이 지나면 인터럽트로 설정
  • 타이머 인터럽트가 발생하면 OS가 제어를 통해 각 사례를 적절하게 처리할 수 있다.
  • Time counter 는 privileged instruction 통해서만 수정 가능