[OS] 1. Introduction

Hα ყҽσɳɠ·2020년 3월 3일
0

Operating system

목록 보기
1/10

Intro

복습 포스트 .. (수정예정 )

HGU 전산전자공학부 김인중 교수님의 20-1 운영체제 수업을 듣고 작성한 포스트이며, 첨부한 모든 사진은 교수님 수업 PPT의 사진 원본에 필기를 한 수정본입니다.


Agenda

 Definitions of operating system
 Computer system organization and operation  Computer system architecture
 Operating system structure and operation
 Core components of OS
 Computing environments


1. Definitions of operating system

  • 운영체제라고 하면, 뭔가 거대한 것을 상징하는 것처럼 보인다. 운영체제의 사전적 정의는 "모든 하드웨어와 모든 소프트웨어를 관리하는 컴퓨터 시스템의 한 부분인 '실행 관리자'"라고 한다.

  • 대략, OS는 user와 H/W 사이의 중개라고 볼 수 있으며, Kernel + additional programs라고 볼 수 있다.여기서, Kernel은 항상 실행되면서 하드웨어의 자원을 프로세스에 분배하고, 메모리와 프로세스를 제어하며, 시스템 콜 등을 수행하는 운영체제의 코어이다.

  • operaing system goals: 운영체제는 하드웨어를 제어하고 컴퓨터 자원을 관리하며, 유저의 컴퓨터 사용을 편리하게 해주고 응용 프로그램들의 수행을 도와주며, 사용자와 하드웨어 사이의 매개체 역할을 한다.

  • Components of Computer System: computer system은 Hardware, OS, Application programs, Users로 이루어져 있다.

    스크린샷 2020-03-02 오후 5 45 07
  • What OS Do?

    1. OS는 프로그램이 실행될 환경을 제공한다. "hello world!"를 출력하는 간단한 프로그램 조차도 운영체제가 없으면, 실행시킬 수가 없다. 화면에 출력을 돕는 스크린에 대한 통제권이 운영체제에게 있기 때문이다. 따라서, 간단한 프로그램도 반드시 운영체제가 존재해야 한다.
    2. OS는 시스템의 자원을 관리한다. 제한되어 있는 하드웨어를 사용자가 최대한 효율적으로 사용하도록 하며, 제한된 리소스를 할당하고 관리하는 역할을 한다.
  • System View

    1. OS는 resource allocator이다. CPU, 메모리, 파일 저장 장치, I/O장치 등 모든 자원을 관리하며, 프로그램들에게 순차적으로 리소스를 할당한다.

    2. OS는 제어 프로그램이다. 컴퓨터 시스템의 경찰에 해당하는 역할 또한 담당한다. 여러 개의 프로그램이 동시에 동작할 때, 하나의 에러가 다른 프로그램들을 망가뜨릴 수 있으므로, 에러와 같은 상황을 제어하여, 전체 프로그램에 끼칠 악영향을 막는다.


2. Computer system organization and operation

  • computer system operation: 컴퓨터를 실행하면 어떤 일이 발생하는지 알아보자

    1. Bootstrap program(firmware)가 실행된다. 여기서 Bootstrap은 가장 먼저 실행되는 부팅을 맡아주는 소프트웨어이고, firmware 는 메인보드 안에 내장되어 있는 소프트웨어를 뜻한다.

      1. 시스템 진단 및 초기화
      2. OS kernel 로드 및 실행 (bootstrap loader)
    2. OS kernel: 부팅 --> 마우스, 키보드 등의 이벤트 발생을 기다린다 --> 이벤트 발생 시, 처리해준다

  • interrupt driven programs: 인터럽트가 발생하면, 그것을 디텍트 하여 해결하는 동작

  • Moern Computer System

    스크린샷 2020-03-02 오후 9 19 59
    • Common bus는 데이터와 computer components들 사이의 전송 시스템으로, control bus는 명령을 전송하며, data bus는 data를 전송한다.
    • bus에 비하여 I/O 디바이스가 느리며, 컨트롤러는 디바이스와 버스를 연결해주어, reading/writing operation을 발생시킨다.
    • 각각의 device controller는 local buffer를 가지고 있다. CPU는 data를 메인 메모리에서 로컬 버퍼로, 로컬 버퍼에서 메인 메모리로 이동시킨다. Reading은 device에서 local buffer로, Writing은 local buffer에서 device로 발생한다.
    • CPU가 device controller에게 요청한 명령을 끝냈을 때, disk controller는 CPU에게 signal(=interrupt)을 보내면, CPU는 해당 결과를 가지고 다른 일을 할 수 있다. (병렬적으로 동시에 동작 가능하게 하여, 효율을 극대화한다.)
  • Interrupt는 하드웨어/소프트웨어가 주목을 끌기 위해 보내는 동기화되지 않은 신호이다. 각각의 인터럽트들은 IRQ number가 지정되어 있으며, 이는 어떤 종류의 인터럽트이며 어떻게 처리해야 하는 지 판별해준다. ìnterrupt handler 는 인터럽트마다 처리하는 루틴이 지정되어 있는 것을 의미하며, interrupt vector ìnterrupt handler 의 시작 주소를 저장하고 테이블을 의미한다.

  • A machanism to process event

    1. H/W interrupt: 예측하지 못한 시간에 발생한다. sending signal to CPU
    2. S/W interrupt: 특정한 명령이 이루어지는 순간 발생하므로, 발생 가능한 위치나 시간이 정해져 있다.
      1. system call: OS에게 기능을 지원받고 싶을 때, 소프트웨어가 의도적으로 발생시킨다.
      2. exception: system이 뭔가 잘못되었다는 오류, 예외적인 상황 시 발생시킨다.
  • Interrup Mechanism

    스크린샷 2020-03-02 오후 10 34 35
    1. CPU가 현재 work를 멈추고, interrupt handler에 명령을 보낸다. (interupt handler를 호출하기 전에, return address와 state를 저장해둬야 한다. --> 찾아보니 해당 프로세스의 PCB(Process Control Block)에 저장한다고 한다.)

    2. interrupt는 해당 handler에 의해 처리된다.

    3. interrupted된 프로그램으로 돌아간다.

  • Interrupt-based I/O (CPU와 I/O가 동시에 실행)

    1. CPU는 요청을 보내면서 현재 프로세스나 다른 일들을 진행한다.

    2. data 전송이 끝났을 때, I/O device는 intterupt를 보낸다.

      • 아래 그림을 참고하면, CPU와 I/O가 동시에 실행되고 있다. 이 때, I/O device에서 interrupt를 보내면, CPU는 intterupt handler로 점프하여 interrupt를 처리한 후, 다시 원래 상태로 돌아가서 동작한다. 이 때, I/O device의 transferring은 device와 device controller간의 입출력을 의미한다.
      스크린샷 2020-03-02 오후 10 32 25
  • Storage Structure

    스크린샷 2020-03-02 오후 10 39 42

    데이터나 명령어를 기억할 수 있는 저장공간을 의미하는 저장 구조이다. primary storage를 보면 레지스터, 캐쉬, 메인메모리로 구성되어 있다. 이들은 모두 전원을 껐을 때, 날라가게 되는 휘발성 메모리라는 특징을 지니며, 저장공간이 작지만 빠르며, 가격이 비싸다는 특징이 있다. 우리가 흔히 RAM으로 알고 있는 메인 메모리는 데이터를 저장하지만, 연산은 일어나지 않는다. 연산을 하기 위해 명령어와 data를 CPU로 가져와야 하는데, 이 때 메인 메모리와 레지스터의 속도 차이가 문제가 된다.

    스크린샷 2020-03-02 오후 10 43 44

    위의 표에서 나타내고 있는 레지스터와 메인 메모리의 access time을 보면, 레지스터는 매우 빠른 속도로 reading과 writing이 가능한 반면, 메인 메모리는 상대적으로 느린 속도라는 것을 확인할 수 있다.

    레지스터에서 메인 메모리를 엑세스 하는데 시간이 많이 걸릴수록 전체적인 성능 저하를 가져오게 되므로, 중간 역할로 캐쉬메모리를 사용한다. cache 는 CPU 내에 존재하며, 메인 메모리에서 읽어온 데이터를 임시로 저장하여, 복사본을 만든다. 레지스터가 전에 읽어왔던 데이터와 동일한 데이터를 엑세스 해야 할 경우, 메인 메모리를 엑세스 하지 않고 캐쉬를 엑세스하면 속도가 개선된다.

    결국 cacheregistermain memory사이의 속도 차로 인한 병목 현상을 막기 위해 사용한다. main memory 접근 횟수를 줄여, 성능을 개선한다!

  • I/O Device Access에는 Busy waiting이라는 old system과 Interrupt-driven I/O, DMA(Direct memory ACcess)라는 modern system이 존재한다.

    1. 아래는 Busy waiting 시스템이다. CPU가 I/O operation 요청 후, 주기적인 체크를 하며, operation이 끝나야 다음 루틴을 수행한다. 이는 CPU가 다른 작업을 하지 못하고 계속 기다려야 한다는 문제가 발생한다.
    스크린샷 2020-03-02 오후 10 52 31
    1. Interrupt-driven I/O는, CPU가 device controller에게 동작을 요청했을 때, device controller가 동작을 마친 후, interrupt controller에게 인터럽트를 요청한다. 그러면, interrupt controllerrk CPU에게 인터럽트를 보낸다.

      device controller가 디바이스로부터 어떤 데이터를 읽어왔을 때, 이 데이터는 메모리에 저장되어야 한다. 따라서, CPU는 device controller의 로컬 버퍼에 있는 메모리를 읽어와서 writing을 해야 한다. (local buffer까지 데이터가 왔다 == operation이 끝났다는 의미) 키보드/마우스와 같은 경우는 작은 용량이라 부담이 적지만, 디스크 같은 경우는 한 번에 많은 양의 데이터(블럭)을 한꺼번에 전송한다. 이처럼, 읽어온 데이터가 큰 용량이라면, CPU가 하나씩 읽어 메모리에 writing을 하는 것은 성능을 저하시킨다.

    2. DMA

      스크린샷 2020-03-02 오후 11 04 09

      Direct Memory Access 같은 경우, CPU가 직접 접근하여 writing하지 않고, device controller가 직접 데이터를 메인 메모리에 저장시켜줄 수 있다. CPU가 직접 local buffer에 있는 데이터를 옮길 필요없이 DMA를 통해 전송시키므로, CPU가 단순한 transfer 작업에 사용되지 않는다는 장점이 있다. 이는, 전송해야 하는 데이터의 양이 많을 때 성능 개선 효과가 높다. 하지만, 이는 하드웨어 구성을 복잡하게 하므로 간단한 디바이스에는 잘 사용하지 않는다.


3. Computer system architecture

  • Single processor, Multi processor, clustered systems이 있다.

Single-Processor systems

일반적으로 싱글 코어이며, 하나의 CPU가 존재한다. 간단하며 저렴하다는 장점이 있다.

Multi-Processor Systems

컴퓨터는 1대인데, 프로세스는 2개 이상인 것을 의미한다. 시스템의 컴퓨팅 속도를 향상시키기 위해, CPU가 추가된다. 멀티 프로세서는 Tightly-coupled system으로, bus, clock, memory, peripheral 등을 공유한다.

  • 멀티프로세싱의 종류에는 Symmetric multiprocessing(SMP, 대칭형 멀티프로세싱)과 Asymmetric multiprocessing(비대칭형 멀티프로세싱)이 있다.

  • SMP는 여러개의 CPU가 대등한 위치에서 협업을 한다. 서로 비는 타임에 실행해야 하는 프로그램을 가져가서 실행시킨다.

  • Asymmetric multiprocessing은 하나의 CPU가 master, 나머지가 slave로 구성된다. 두 개 이상의 각각의 프로세서가 자신만의 다른 특정 기능을 수행하는 아키텍쳐를 의미한다.

장점

  • Increased throughput:
    throughput은 일정한 시간동안 얼마나 많은 프로그램을 끝낼 수 있는가를 의미하는데, N개의 프로세서가 실행되면 N time만큼 속도가 빨라진다. (하지만, 보통 약간의 overhead가 발생한다.)
  • Imporved reliability:
    - ability to continue service proportional to the level of surviving H/W
    • fault tolerant: 하나의 프로세서에서 문제가 발생하여도 나머지 시스템에서는 계속 올바르게 작동하는 특성

Clustered Systems

 
profile
𝑯𝒐𝒏𝒆𝒔𝒕𝒚 𝑰𝒏𝒕𝒆𝒈𝒓𝒊𝒕𝒚 𝑬𝒙𝒄𝒆𝒍𝒍𝒆𝒏𝒄𝒆

0개의 댓글