본문 바로가기
Computer Science/Operating System

OS #1 - Operating System Introduction.

by HaningYa 2020. 4. 20.
728x90

앞으로 배울것들

  • what operating System Do
  • Computer-System Organization
  • Computer-System Architecture
  • Operating-System Structure
  • Operating-System Operations
  • Process Management
  • Memory Management
  • Storage Management
  • Protection and Security
  • Kernel Data Structure
  • Computing Environments
  • Open-Source Operating System

학습의 목표

  • 컴퓨터 기본구조 파악한다.
  • OS에서 중요한 구성요소에 대해 알아본다.
  • 컴퓨팅 환경에 대한 전반적인 시각을 가진다.
  • open source os 경험한다.

Operating System 이란?

A program that acts as as intermediary between a user of a computer and the computer hardware

user의 컴퓨터와 hardware 컴퓨터 사이의 중간 매개체가 되주는 프로그램이다.

OS 의 목표

  • Execute user programs and make solving user problems easier
    사용자 프로그램을 실행하고 사용자의 문제를 쉽게 해결하기 위해
  • Make the computer system convenient to use
    컴퓨터 시스템의 사용을 편하게 하기위해
  • Use the computer hardware in an efficient manner
    컴퓨터 하드웨어를 효율적으로 사용하기 위해

컴퓨터 시스템의 4가지 부분

  1. Hardware : 기본 컴퓨팅 리소스 제공
    CPU, memory, I/O 장치
  2. Operating system : 다양한 application과 user의 하드웨어 사용을 제어하고 관리해준다
  3. Application program : 시스템 리소스가 사용자의 컴퓨팅 문제를 해결하는 방법이 정의된것
  4. Users : people, machine, other computers

 


다양한 관점에서 봤을 때 OS가 하는일

  • 사용자 입장 : 편리하고 사용이 쉽고 성능이 좋아야 한다. resource utilization에 대해 신경쓰지 않아도 된다.
  • 공유된 컴퓨터 입장(shared computer) : 고성능 메인프레임 컴퓨터나 미니 컴퓨터들은 사용자들이 원하는 역할을 해주어야 한다.
  • 고성능 서버급 컴퓨터 : 특정 과학 기술 작업에 대해 자원을 효율적이고 빠르게 작업할 수 있게 해야한다.
  • 휴대용 컴퓨터 : 리소스가 안좋기 때문에 사용성을 최적화 하고 배터리를 관리한다.

Operating System Definition

  • Resource allocator : 리소스 관리 프로그램
    - 모든 리소스를 관리한다.
    - 효율적이고 공정한 리소스 사용을 위해 충돌되는 요청에 대해 판단한다.
  • Control program : 제어 프로그램
    - 부적합한 컴퓨터의 사용과 에러를 예방하기 위해  프로그램의 실행제어를 담당한다.
  • 사실 정형화된 정의는 없다,
  • OS를 주문했을때 오는 모든것을 OS라고 한다.
  • Kernal + System program (나머지는 application program)

*Kernal : The one program running at all times on the computer -->OS의 여러가지 핵심이 되는 기능(CPU 스케쥴링 등)


BootStrap program

  • 컴퓨터를 켜거나 리부팅할때 Load 되는 프로그램
  • ROM 이나 EPROM에 펌웨어(firmware) 형태로 구현됨
  • 시스템을 초기화 해주는 기능
  • OS kernal를 로딩하고 실행을 시작시키는기능을 한다.

*BIOS : 메인 보드에 칩 형태로 구현, 전원이 켜졌을 때 ROM BIOS에 firmware 형태로 구현되있는 코드가 실행됨(BootStrap 과정)


컴퓨터 구조 간략 설명

  • 하나 이상의 CPU와 device Controlers 가 공유 메모리에 접근하게 해주는 common bus를 통해 연결된다.
  • CPU와 device의 Concurrent한 실행은 memory cylce에 대해 경쟁한다.

  • CPU 장치는 입출력 장치와 독립적으로 병행해서 실행이 가능하다. (인터럽트를 통한 제어권 획득)
  • I/O모듈은 local buffer 를 가진다.
  • buffer를 통해서 data 통신이 이루어 진다.
  • Interrupt signal 로 CPU 에게 동작이 끝났음을 알린다.

인터럽트의 공통기능

  • Interrupt vector를 통해 일어남
    *service routines의 모든 주소를 가진 vector
  • 인터럽트 아키텍쳐는 instruction의 address를 저장하고 있어야 한다.
  • trap,exception : error나 유저 요청에 의한 software-generated intrurrpt 
  • OS는 interrupt driven 시스템이다.

인터럽트 핸들링

  • OS는 registers와 program counter를 저장함으로써 CPU의 상태를 보존한다.
  • 어떤 타입의 인터럽트인지 판단한다.
    - 프린트, 하드디스크, 시스템 등 어느 인터럽트인지 체크한다.
    - polling
    - vectored interrupt system : 자신만의 특정 주소값을 보내는 방식
  • seperate segments of code determine what action should taken for each type of interrupt

Storage Notation.

KB = 1024 = 2^10

MB = 10242 = 2^20

GB = 10243 = (2^30)

TB = 10244 = (2^40)

PB = 10245 = (2^50)

Storage Structure

  • Main memory : CPU 가 직접적으로 access 할 수 있는 유일한 대용량 저장장치
    - DRAM
    - Random Access
    - Typicaly Volatile
  • Secondary Storage : 비 휘발성 대용량의 저장장치, 메인 메모리의 연장선
  • Hard disk 
  • Solid State Disk

Storage Hierachy

  • Speed
  • Cost
  • Volatility

*Caching : copying information into faster storage system.

*Device Driver(for each device controller) : provide uniform interface between controller and kernal


Caching

  • 컴퓨터의 다양한 레벨에서 사용되는 원리
  • 느린 저장소에서 빠른 저장소로 임시로 데이터를 복사해놓는 것
    1. 먼저 해당 정보가 캐시에 있는지 확인한다.
    2. 있으면 캐시에서 바로 참조한다.
    3. 없다면 캐시로 복사해서 사용한다.
  • Cache 는 cached 되는 저장소 보다 작다.

DMA : Direct Memory Access Structure

  • 빠른 속도의 입출력 장치에 대해 메모리 속도와 비슷하게 데이터를 전송할 수 있게 한다.
  • CPU 간섭없이 직접 I/O가 메모리에 access 한다.

 


컴퓨터 시스템 구조

  • 컴퓨터 시스템은 대부분 single general-purpose processor를 사용한다.
  • multiprocessors 시스템의 중요도가 증가하고 있다.
  • parallel systems, tightly-coupled systems
    1. 전제적인 성능 증가(주어진 시간 내에 얼마나 많은 일을 처리하는가)
    2. 규모의 경제
    3. 신뢰성이 높아짐 - graceful degradation or fault tolerance
  • Two types
    1. Asymmetric Multiprocessing - 각각 프로세서는 특정 작업에 할당된다.
    2. Symmetric Multiprocessing - 각각 프로세서는 모든 일을 한다.

Symmetric Multiprocessing vs Asymmetric Multiprocessing

  • 대칭형 다중 처리는 두 개 또는 그 이상의 프로세서가 한 개의 공유된 메모리를 사용하는 다중 프로세서 컴퓨터 아키텍처이다.
  • 비대칭 멀티 프로세싱 시스템은 복수의 상호 연결된 중앙 처리 장치가 모두 동일하게 취급되지 않는 멀티 프로세서 컴퓨터 시스템이다.
    - Master Slave 방식
    - Master는 Slave에 작업을 할당하고 자료구조를 제어한다. 스케쥴링과 입출력 프로세싱, 시스템 활동을 관장한다.

Clustered Systems

  • 멀티 프로세서 시스템과 비슷하지만 다수의 시스템들이 함께 작업한다.
  • storage-area network(SAN-LAN정도의 빠른 Network) 를통해 메모리를 공유한다.


Operating System Structure

  • Multiprogramming(Batch system) - need for efficiency
    1. CPU 가 항상 하나 이상의 실행을 하기 위해 jobs(code and data) 들을 Multiprogramming이 organizes한다.
    2. total jobs의 subset들은 메모리에 항상 저장된다.
    3. job Scheduling에 의해 작업이 선택된다.
    4. I/O와 같은 것 때문에 CPU가 기다려야 할 때 운영체제는 다른 작업으로 바꾼다. 
  • Timesharing(multitasking) - logical extension in which CPU switches jobs so frequently that user can interact with each job while it is running creating interactive computing
    1. 응답시간은 1초 이내여야 한다.
    2. 각각 유저들은 메모리에 적어도 하나의 프로그램을 실행한다. -> process
    3. 여러 작업들이 동시에 실행될 준비가 된다 -> CPU scheduling
    4. 프로세스들이 메모리에 안맞다면 swap 하여 바꾼 뒤 실행한다.
    5. Virtual memory 는 메모리외에서 프로세스를 실행하게 해준다.

Operating System operations

  • Hardware interrupt by one of the devices
  • Software interrupt(exception, trap)
    - Software error ( division by zero)
    - Request for operating system service
    - Process problems such as infinite loop
    - Proceses modify each other or the operating system
  • Dual mode : OS to protect itself and other system components
    - User mode : 어플리케이션 실행
    - kernel mode : 중요한 부분을 항상 OS의 기본적인 부분을 수행하는 모드
    -mode bit provided by hardware : distinguish when system is running user code or kernel code
    --> application 이 시스템 하드웨어를 직접 접근하면 보안, 안정성에 문제가 있을 수 있기 때문에 분리한다.
  • Increasingly CPUs support multi-mode operations
    - virtual machine manager(VMM) mode for guest VMs

Process Management

  • Process : 실행되고 있는 프로그램. Program 은 passive entity(코드 그자체)지만 process는 active entity
  • Process 는 CPU, memory, I/O, files, initialization data 등등의 리소스가 필요함
  • Process 종료는 사용하던 리소스의 reclaim 이 필요함
  • Single-threaded process : 하나의 program counter가 있음(순차적으로 하나씩 실행됨)
  • Multi-threaded process : one program counter per thread
    - 같은 프로세스의 스레드는 같은 가상 주소와 공간과 file descriptor를 공유함
    - 각각의 쓰레드는 stack, stack pointer, program counter, CPU registers를 소유함
    - 쓰레드는 OS가 processor를 schedule 하는데 쓰는 unit
  • OS는 user process와 system process에 대해
    1. creating and deleting
    2. suspending and resuming
    3. providing synchronization
    4. providing communication
    5. handling deadlock

Memory Management

  • 프로그램을 실행하면 모든 명령어와 데이터가 메모리 상에 있어야 한다.
  • 메모리 관리는 어떤게 있느냐와 언제 쓰이느냐에 따라 결정된다.
  • OS는 Memory 에 대해
    1. Optimizing CPU utilization and computer response
    2. Keep track of memory are currently using by whom
    3. decide which processes and data to move into and out memory
    4. allocating, deallocating memory space as needed

Storage Management

  • OS는 스토리지에 대한 uniform하고 logical 한 관점을 가진다.
  • File System management
    1. creating and deleting files and directory
    2. access control on most systems to determine who can access what
    3. primitives to manipulate files and directories
    4. mapping files onto secondary storage
    5. backup files onto stable storage media

Migration of data from Disk to Register

  • 멀티 프로세서 환경에서는 caches coherency가 중요하다.
    *cache coherecy : all CPU have the most recent value in their cache
  • 일관성 문제가 생기는 이유
    1. Cache 가 A에 있다
    2. CPU1 이 A를 B 로 바꿨다.
    3. data A는 B로 바꿔져야 되지만 cache 에는 A가 적제되어 있을 수 있다.
    4. CPU2 입장에서는 바뀐 B를 써야 하는데 예전 A를 사용할 수 있다.

Protection and Security 

  • OS에서 제일 중요한 부분이다.(데이터를 안전하게 만들고 시스템 취약성을 낮춘다.)
  • Protection : OS자원에 허용된 접근만 Access (dual mode)
  • Security : 시스템을 내부와 외부로 부터 안전하게 만든다.
  • 시스템은 누가 어떤 권한을 가지는지 먼저 구분한다.

Kernal Data structures

  • 여러가지 자료구조를 활용함으로써 효율적인 동작을 할 수 있게 만든다.
  • Singly linked list
  • Doubly linked list
  • Circular linked list
  • BST
  • Hash map


 

728x90

'Computer Science > Operating System' 카테고리의 다른 글

🌌운영체제 구조  (0) 2020.06.17
🚗Process  (0) 2020.06.16
🥓Thread  (0) 2020.06.16
🚀CPU 스케줄링 알고리즘  (0) 2020.06.16

댓글