Intro to OS_운영체제(1)

조권휘·2022년 12월 28일
0

운영체제

목록 보기
1/14

Operating System

  • process : 실행중인 program(program in Execution)
  • disk controller, USB controller, graphics adapter : I/O devices
  • memory, CPU : Stored program Architecture
  • System BUS : 각 기기를 잇는 전선과 같은 것

Computer System Components

Hardware

  • 기본 computing 자원을 제공(CPU, Memory, I/O devices, ...)

Operating System

  • S/W
  • 여러 응용프로그램이 동작할 수 있는 환경 제공
  • H/W 자원들을 사용
  • hardware 자원을 관리하는 역할 : 경제성 / 공평성 / 효율성 / 편의성에 기반
  • Virtual machine과 같은 역할

System & Application Programs

  • compiler, database : system software
  • game, web browser, email, word process : application software

Users

  • 실제 사용하는 사람 / machine / 다른 컴퓨터들

What is OS?

Application view(응용프로그램 관점)

  • 응용프로그램을 실행할 수 있는 환경을 제공
  • computer system을 추상화(abstract)해서 제공
    • CPUs → process, Threads
    • Memory → Address spaces(Virtual Address Space)
    • Storage → Volumes, Directories, Files
    • I/O Devices → Files(ioctls)
    • Networks → Files(sockets, pipes, ...)

System view(OS가 전체 자원을 관리하는 관점)

  • 다양한 자원을 관리
  • 여러 장치들이 가급적 계속 일을 할 수 있도록 유지
  • Sharing : 여러 장치들이 서로 공유될 수 있도록 한다.
  • Protection : 각 process는 자신이 사용하는 영역(address space) 이내에서만 접근할 수 있도록 허용, 다른 process의 영역에는 침범할 수 없게 한다.
  • Fairness : 같은 조건에서 공평하게 자원을 사용하게 한다.
  • Efficiency : 자원을 가급적이면 오랜 시간동안 효율적으로 사용하게 한다.
  • Concurrency : 병행성, 동시에 여러 개의 process를 사용하도록 한다.
    • 병행성 덕분에 자원들의 utilization이 매우 좋아졌다.

Implementation view (구현 관점)

  • interrupt handling
  • trap(S/W interrupt) : MS가 제공하는 특수 명령어로 interrupt 효과를 일의는 것
  • Highly-concurrent, event-driven software
  • OS는 완전하게 보호된 객체이기 때문에 interrupt 형태인 trap으로 접근을 해야한다.
  • system call : OS가 제공하는 기능

OS History

  • 초기 system은 OS가 없이 작동되었다.
  • Batch processing systems(일괄처리)
  • Multi programming systems
  • Time sharing(Multi-tasking) systems
  • 위의 4단계까지 기본적인 기능이 대부분 완성되었다.

Early Systems

  • OS가 없는 system
  • programmer에 의해 manual precessing이 진행
  • compiler/utilities 는 추후에 추가되었다.

Batch Processing Systems

  • 일괄처리 방식으로 같은 작업을 처리하고, 거의 한 번에 한 개의 작업을 처리한 뒤 다음 작업을 진행한다.
  • punch card에 작업을 한다.
  • 효율성이 매우 떨어진다.
  • offline processing이다.

Multi-programming Systems

  • concurrently하게 작업이 실행되었다.
  • memory segmentation
  • IO/CPU overlap이 가능해졌다. → CPU의 효율성이 증가
  • Job Scheduling, memory management, CPU scheduling, protection
  • Spooling(Simultaneous Peripheral Operation On-Lince) : 각 장치마다 I/O buffer를 제공, CPU와 I/O 동작 동시에 지원하는 기능

Time sharing system(Multi-tasking system)

  • time slice : OS에 의해 CPU time quantum이 한번에 하나씩 지급되는 것
  • Online process로 user와 상호작용을 한다.

Distributed Systems

  • network(internet) 기반으로 여러 computer들이 연결되어 있는 것
  • loosely coupled multi-processor system이라고도 불린다.
  • 각 node는 각자의 local memory가 존재한다.
  • 여러 자원을 효과적으로 공유하고 실행속도를 높이며 신뢰성을 높인다.
  • NFS, Cloud server..
  • H/W는 쉽지만 S/W는 어렵다.

Cloud Computing

  • Distributed servers + hyperbisor + virtual machines
  • Hypervisor : 가상화 지원 software
  • Saas : S/W가 자원으로 작동하는 것 이상으로 application으로 작동한다.
  • Iaas : infra structure를 제공하는 것

Embedded system

  • 특수한 장치에 들어가서 특수한 목적을 가진 S/W
  • Mobility, battery, real-time systems, harsh environments..
profile
안녕하세요 :) Data/AI 공부 중인 한국외대 컴퓨터공학부 조권휘입니다.

0개의 댓글