4 분 소요

Chapter 1 - Introduction(1)

OS란?

쉽게 말해 컴퓨터 하드웨어와 사용자간에 존재하는 프로그램

image

WHY?

컴퓨터 시스템을 사용하기 쉽게 하기 위해(convenience)

컴퓨터 하드웨어를 효과적으로 사용하기 위해(efficiency)

OS Definition(보는 관점에 따라)

  1. OS is resource allocator
  • 충돌하는 서비스에 대해 어떻게 하면 효과적이고 공정한 자원을 할당할 지 결정해줌
  1. OS is control program
  • 실행을 대기하고 있는 여러 사용자 프로그램을 어떤 순서로 실행 시킬지 제어 ex) CPU scheduler

Computer System Organization

image

하나 또는 더 많은 CPU들이나, device controller들은 공유 메모리에 접근 하기 위해 공통의 bus에 연결함

  • CPU가 어떤 프로그램을 실행할 때, disk controller는 disk에다가 read/write 가능

  • 동시 실행이 가능하다는 뜻

  • local buffer는 각 device의 controller 에 각각 있음, CPU가 데이터를 메인 메모리에서 지역버퍼로,

지역버퍼에서 메인메모리로 데이터를 이동시킴

  • CPU가 명령한 것을 register에서 받아 들임

  • device에서 CPU가 가져오라는 데이터 가져와서 device controller의 local buffer에 저장

  • device controller는 CPU에게 “너가 하라는 명령 끝냈다”라는 인터럽트를 발생시킴으로써 끝났다라고 알려줌

Event driven system vs Controller driven system ?

  • Event driven system : 능동적으로 일을 하는게(외부에서 자극이 없으면 아무것도 안함) 아니라 외부에서 어떤 서비스 요청이 들어올 때 서비스 요청에 대한 서비스를 제공,

  • Controller driven system : 사용자가 작성한 알고리즘 순서에 따라 실행

Interrupt (event 발생을 CPU에게 통보하는 가장 중요한 수단)

Software Interrupt

  • 예를 들어 systemcall()

  • Trap : OS 함수를 호출하기 위해서 발생되는 인터럽트, 실행모드가 사용자 -> 커널로 먼저 바뀌어야함

  • exception : 예외 처리를 하기 위한 인터럽트

image

ISR (인터럽트 서비스 루틴) : Interrupt vector를 통해서 인터럽트 서비스 루틴에 대한 제어를 전달

Interrupt vector : 인터럽트 발생시 처리해야 할 일에 대한 핸들러 즉 인터럽트 핸들러의 주소를 인터럽트 별로 보관하고 있는 테이블

Running snapshot : 인터럽트가 걸렸을 시점의 실행되고 있었던 상태에 대한 모든 정보(빨간 동그라미),

ISR 실행 후 리턴시 원래 snapshot 복원

Interrupt Handling

어느 인터럽트가 발생했는지 결정하는 방법

polling : cpu에 interrupt가 걸렸다는 사실만 통보, 누가 걸었는지는 모름

image

vectored interrupt system : interrupt가 어떤 device가 걸면 알았다고 응답을 보냄 그러고 나서 “너의 interrupt vector를 보여줘라.. “

Interrupt Timeline

image

이해 쉽죠잉?

ISR이 실행되는 동안에는 사용자 실행프로그램은 잠시 중단

Storage-Devide Hierarchy

image

  • registers : cpu안에 있는 가장 빠른 memory

  • cache : cpu에서 main memory로 데이터를 읽어 오는데 한 번 읽은 걸 버리는게 아니라 cache에 저장해서

다음에 똑같은 장소에 갈 때 main memory가 아니라 cache를 먼저 들여다 보고 해당 데이터가 있는

지 확인, 있으면 main memery로 갈 필요 없이 cache에서 꺼내 씀,

각 계층 사이에 존재할 수 있으며, 이러한 역할로 speed gap을 보완 해줌

  • solid-state disk(ssd) : secondary storage인 hard disk 보다는 빠르고, 전원이 꺼져도 컨텐츠가 있음

(nonvolatile)

  • hard disk: 메인 메모리의 확장으로 사용할 수 있는 공간인 secondary storage로 가장 많이 쓰임

Caching (더 빠른 저장 공간으로 정보를 복사함)

  • 각 계층 사이에 존재 가능

  • caching 성능이 좋아질 수록, 비용은 증가

  • 느린 device에서 가져온 copies data를 한번 쓰고 버리는게 아니라 slower한 device보다 빠른 storage에 저장 했다가 먼저 확인을 한 다음 있으면 바로 쓴다

  • Cache size 와 replacement policy 캐쉬의 성능에 크게 영향을 줌

(replacement는 cache가 꽉 차면 안 쓰는 데이터를 버리고 공간을 만듬)

To start an interrupt driven I/O operation

  1. CPU 내의 OS안에 있는 device driver가 명령을 내림

  2. device controller내에 있는 register에 명령을 저장

  3. device controller는 register에 있는 내용을 확인하면서 명령을 이해

  4. device controller는 local buffer와 외부의 device사이에서 명령을 전달

  5. 명령 전달이 완료가 되면 device controller는 device driver에게 인터럽트를 걸어서 명령전달이 끝났다고 통보함

  6. device driver는 리턴된 결과(returning data or pointer to the data, status info)를 OS에게 전달

DMA (Direct Memory Access Structure)

CPU의 간섭 없이 Device controller가 직접 메인 메모리와 외부 디바이스 사이에서 read/write하는 방법

image

기본적으로 폰 노이만 아키텍쳐에서 프로그램이 실행되는 방법

  • Main memory에 먼저 명령과 데이터들이 탑재되어야함

  • location에 의해서 addresable해야함

(main memory에 깔아놓은 데이터들을 랜덤 access 할 수 있어야함)

  • 실행은 순차적으로 진행됨

image

  • Memory 에는 데이터와 프로그램들이 저장되어 있음

  • CPU내에 Control Unit은 main memory에서 읽어온 instruction 을 CPU가 해석해서 ALU에게 계산을 하라고 명령함 ALU는 산술논리연산 장치로써 계산을 함

  • Input-outputdms I/O device controller 의 예, 외부 디바이스와 정보를 주고 받음

Instruction Cycle

image

Fetch : Control unit이 main memory에서 다음에 실행할 instruction을 가져옴

Execute : Instruction 실행

Fetch - Execute 는 1cycle

  • 1cycle 즉, 명령이 불러와지고 실행되는 동안에는 Interrput가 절대 x

  • 1cycle 돌고 다음 2번째 cycle을 실행할려고 Fetch cycle로 돌아 가기 직전에 외부 인터럽트가 걸린지 체크

image

Multiprocessor systems(general - purpose processor 2개이상)

  • parallel systems(multi-core)

  • Tightly - coupled system : 여러 cpu가 좁은 공간에서 공유된 메모리를 통해 데이터를 주고받음

장점?

  1. 수능 1~30문제를 1명이 계산하는 것보다 여러명이서 계산하는 것이 좋음 -> Increased throughput

  2. single-processor가 3개있는 것보다 3-cores cpu가 가격이 더 쌈 -> Economy of scale

  3. 한 cpu가 다운 되면 다른 cpu가 커버 가능 -> Increased reliability

Symmetric Multiprocessing (SMP)

(각 CPU는 동등한 위치?직위? 감사합니다 )에서 실행

  • Load balacing is important

모든 프로세스에게 부여된 일이 균등해야 스피드업을 기대가능

(예를 들어 한 명은 10000개일을 하고 다른 4명은 100개씩 일을 하면 한 명이 10000개를 끝날 때까지 기다려야함)

  • 대부분 사용하는 멀티프로세싱 기법

image

Asymmetric multiprocessing

각 CPU가 정해진 일이 있음 Master processor 가 일을 할당, Slave processor는 부여된 일을 수행

(수능 문제를 푸는데 1명이 다른 3명에게 너는 1~10번문제, 너는 11~20, 너는 21~30 풀어)

  • 굉장히 큰 시스템에서 사용

Multiprocessing increases computing power or amount of memory addressable by adding CPUs

  • 공유하고있는 bus에서 충돌 발생이 커짐
  • 그래서 나온 것이 Memory access model NUMA

image

그래서 누마가 뭔데?

공유가 많이 안되는 정보는 각자의 cpu에 저장, 공유가 많이 되는 데이터는 main memory에 저장

-> memory access 성능이 올라감 (충돌이 별로 안되니깐)

-> ex) 헬스장에서 운동할 때 머신존이나 핑크덤벨존, 프리웨이트존 따로 있으면 헬창형들과 헬린이가 겹칠일이 없음

또 하나의 mulitprocessor system !! -> clustered systems

  • SMP나 ASP는 Tightly-coupled였지만 Clustered system은 loosely-coupled system

  • SAN이라는 공유하는 저장공간 지역 네트워크와 각 node들은 independent인데 single-processor가 한 노드가 될 수있고 다른 노드는 multi-core일 수도 있음

image

  • High - availability(HA) 서비스 제공

Asymmetric clustering: ex) 두 개의 system이 있는데 하나는 active상태, 하나는 hot-standby 상태

이때 active가 faiures가 되면 hot-standby인 시스템이 active

Symmetric clustering : ex) 각 시스템 끼리 서로 감시하다가 어떤 노드가 fail이 발생한 노드가 있으면 fail이 발

발생한 노드가 하던 일이 다른 시스템이 take-off

  • parallelization

Distributed Systems(별로 안 중요하게 말씀하심)

  • 앞에 clustered system은 분산 시스템의 한 example임

  • 마찬가지로 loosely coupled system

  • 계산을 분산함

태그:

카테고리:

업데이트:

댓글남기기