2 분 소요

4. 운영체제 구조

다중 프로그래밍(Multiprogramming)

여러 개의 작업을 동시에 main memory에 적재하고, 적재된 작업들이 CPU를 번갈아 사용하게 함(multiplexing)

  • (배경)단일 작업이 CPU와 I/O장치를 모든 시간에 사용할 수 없다.

  • (목적)CPU efficiency 증가

어떤 작업이 I/O 수행동안 또는 사건을 기다리는 동안 CPU를 계속하여 사용할 수 없을 때에 메모리에 적재된 다른 작업이 CPU를 사용하게 함 → CPU와 I/O 장치가 많은 시간동안 busy상태가 됨 → CPU 사용효율 증가

image

시분할(Time-Sharing) - Multitasking

대화식 입출력을 위한 Multiprogramming의 논리적 확장 프로그램 실행동안 사용자가 자신의 작업과 interaction을 할 수 있도록 여러 작업들이 CPU를 매우 빈번하게 번갈아 사용함 → Interactive computer system 용

Interaction Computer system

응답시간이 짧아야 함(< 1sec) Time-sharing은 짧은 응답시간을 제공함

  Multiprogramming Time Sharing
목적 CPU 사용률 최대화 응답시간 최소화
작업지시 방법 Job control language 명령어 터미널에서 명령어 입력

5. 운영체제 동작

운영체제는 interrupt-driven 동작을 수행 많은 작업들이 컴퓨터 자원을 공유하여 실행되며 한 프로그램의 bug에 의해서 영향 받을 수 있음 → 무한루프, 다른 프로그램의 메모리를 수정 자원공유는 Protection 기능을 필요로 함

Dual-Mode (또는 Multi-Mode) Operation

대부분의 CPU는 OS와 사용자 프로그램의 실행을 구분하기 위하여 두 개이상의 동작 모드를 제공함

  1. User mode
  2. Kernel mode (supervisor, monitor, system, privileged mode) CPU mode bit가 현재의 동작 모드를 표시함
  • (예) kernel mode : 0, user mode : 1

특권 명령어 (Privileged Instruction)

  • Kernel mode에서만 실행가능한 instruction
  • User mode에서 실행되면 exception 발생 ➔ privilege violation
  • CPU는 시스템 동작에 영향을 주는 명령어를 특권명령어로 설계함

(예)

  • I/O instructions
  • Timer, interrupt 관리
  • 메모리 관리장치(MMU) 관리
  • 시스템 제어 : halt, interrupt 활성화 등

image

User mode Kernel mode
User 프로그램 실행 OS 실행
특권 명령어 실행 불가 특권 명령어 실행 가능
일부 메모리 공간 접근 불가 모든 메모리 공간 접근 가능

동작 모드 전환

CPU 동작모드 전환

Power on : kernel mode에서 시작 OS가 적재되어 실행되면, 사용자 프로세스를 user mode에서 시작하게 함 Interrupt가 발생하면 kernel mode로 전환됨 Interrupt로부터 return되면 원래의 동작모드로 전환됨

image

  • Dual mode를 제공하지 않는 CPU는 보호기능이 제공되지 않음

시스템 호출 수행 과정

image

  • System call 명령어 호출 : INT, trap, syscall 등
  • OS의 해당 system call 서비스 루틴이 kernel mode에서 실행
  • 서비스 루틴은 parameter를 유효성을 검증하고, 서비스를 수행
  • 서비스 수행 종료 후 return from interrupt 명령어 실행 → system call 다음의 명령어로 실행 제어 전달이 이루어짐

image

Timer와 CPU Protection

CPU protection

Timer 사용 : 무한 루프 방지, 특정 process의 CPU독점 방지

Timer interrupt

Timer는 지정된 기간 후에 interrupt (예: 1/60초) OS가 timer(counter)를 설정함 Timer가 매 클럭마다 감소하여, 0이 될 때에 interrupt가 발생

6-9. 자원 관리

  • Process 관리
    • Process : 실행 중인 프로그램
      • Program : 수동적 개체
      • Process : 능동적 개체
    • Process 실행을 위해서 CPU, memory, file, I/O device와 initialization data가 필요
  • Memory 관리
    • Memory
    • MMU (Memory Management Unit)
  • Storage 관리
    • Mass storage 관리
    • File system 관리

Caching

정보를 더 빠른 storage로 일시적으로 복사하는 것

Cache 관리 방법이 중요한 설계 문제임

Storage 계층구조와 데이터 이동

image

Cache 일관성 문제

  • 같은 data가 여러 계층에 존재할 수 있음
    • 다른 계층에 있는 동일 data는 consistent 해야함 “원본 = 복사본” 유지
  • Multiprocessor나 분산 환경에는 consistency 유지가 더욱 복잡해짐

10. 커널 자료구조

운영체제 커널에서 주요 자료구조가 많이 사용됨

  • Linked list
    • Singly linked list
    • Doubly linked list
    • Circular linked list
  • Stack, Queue
    • stack : LIFO
    • queue : FIFO
  • Tree
    • Binary search tree : worst case O(n)
    • Balanced binary search tree : O(log n)
    • (ex) 리눅스에서 red-black tree 사용
  • Hash function
    • Search : O(1)
  • Bitmap
    • N items의 상태를 N bits로 표시
    • (ex) 자원사용 상태

11. 컴퓨팅 환경

  • Traditional computing
  • Mobile computing
  • Client-Server Computing
  • Peer-to-Peer Computing

Cloud Computing

네트워크를 통하여 computing, storage, application들을 서비스로 제공하는 컴퓨팅

  • Software as a Service(SaaS)
  • Platform as a Service(PaaS)
  • Infrastructure as a Service(IaaS)

가상화(Virtualization)

운영체제가 다른 운영체제 환경에서 실행하는 것을 허용 Host OS와 guest OS 모두 CPU 기계어로 컴파일된 native code 사용

image

태그: ,

카테고리:

업데이트:

댓글남기기