[OS] 3. Fundamental Concepts
본문 바로가기

Computer Science/Operating System

[OS] 3. Fundamental Concepts

Abstraction

  • 복잡성을 줄이기 위해 key features만 간추려 제공하는 것
  • 하드웨어의 복잡성을 줄이고, 프로그래머가 하드웨어를 손쉽게 제어할 수 있도록 인터페이스를 제공하는 것
  • ex) API (Application Programming Interfaces)

Typical System Structure

운영체제는 응용 프로그램이 하드웨어 리소스에 접근할 수 있도록 하는 Interface

메모리 관리, 프로세스 관리, 데이터 보안 등과 같은 컴퓨터 시스템의 주요 작업 수행

 

System Calls vs. Library Calls

[ call to printf() ] → [ printf() in the C library write() in the C library ]    [ write() system call ]

    Application                                         C library                                                    Kernel

  • System Calls
    • 커널에 대한 Resource Access 요청
    • application SW와 OS 사이의 인터페이스 제공
  • Library Calls
    • 프로그래밍 라이브러리에 정의된 함수 요청

Protection

  • OS는 많은 종류의 application faults로 부터 시스템을 보호

Memory Protection

각 프로그램별로 메모리 공간 분리

  • Base register와 Limit register를 사용하여 legal address의 범위 결정하고
  • 프로그램이 메모리를 참조할 때마다 해당 프로그램의 base와 limit의 범위에 있는지를 확인
  • 만약 범위를 벗어나서 trap (exception)에 걸리면 운영체제가 해당 프로그램을 kill
    • Base register (= relocation register) - holds the smallest legal memory address (특정 프로그램이 사용하는 메모리의 시작 주소를 담음)
    • Limit register - contains the size of the range (프로그램이 사용하는 메모리의 최대 크기를 담음)

Illusion

  • 시스템이 가진 물리적 제약을 사용자가 느끼지 못하도록 운영체제가 속임수를 쓰는 것
    • 마치 무한한 개수의 프로세서가 있는 것 처럼 : Time Sharing Multitasking
    • 마치 매우 큰 메모리가 있는 것 처럼 : Virtual Memory

Coordination and Optimization

OS는 많은 작업들이 효율적으로 일어나도록 함

  • Coordination
    • 다수의 task, thread, user들이 존재할 때 그것들이 충돌을 일으키지 않게 조화롭게 작동할 수 있도록 함
  • Optimization
    • task, thread, user들의 성능이 저하되지 않도록 최적화 함

Concurrency와 Efficiency를 고려해야 함

  •  Concurrency
    • Multitasking (Synchronization and scheduling)
    • Multi-user support
    • Multithreading
  • Efficiency
    • Overlapped I/O and Processing : I/O device와 CPU가 동시에 작동될 수 있음
    • Effective storage management : Caching, paging, swapping
    • Fast interrupt handling

References