본문 바로가기

study

Operating System | Storage Structure, DMA, 멀티프로그래밍, 시분할, 타이머, 시스템 호출 (9월 둘째 주)

꿀 같은 추석 연휴가 지났다...!

사실 추석 당일에 친척 집 다녀온 것 말고는 한 게 없다...

운동을 좀 더 열심히 하기 시작했는데 오늘 비 맞으면서 했다... ㅠ

정리하는 데 시간이 좀 오래 걸렸던 운영체제...!

거의 독학 수준으로 공부하는 중이라 복습할 때 시간을 가장 많이 차지하는 것 같다.

 


 

Storage Structure

  • Main Memory : Random-Access Memory라고도 불린다. 전원이 나가면 모든 데이터가 사라지는 특징을 갖고 있으므로 volatile(휘발성)하다.
  • Secondary Storage(보조기억장치) : Extension of main memory that provides large nonvolatile storage capacity
  • Magnetic Disks : Rigid metal or glass platters covered with magnetic recording material (nonvolatile)
cf> 커널은 실행기(executor)를 통해 프로그램을 실행시킨다. 실행기는 기억 장치(storage)에서 exe 파일을 가져오고, 커널이 이것을 메모리에 할당해 실행시킨다. ▷▶ 모든 프로그램은 메인 메모리에 로드되어 실행된다.

 

 

Moving-Head Disk Mechanism

Moving-Head Disk Mechanism

  • 하나의 헤드(read-write head)로 디스크 표면을 따라 움직여서 여러 개의 트랙에 접근한다.

 

Storage Hierarchy

  • Storage systems organized in hierarchy : Speed, Cost, Volatility

Storage Hierarchy

 

L1 캐시와 L2 캐시 : L1 캐시는 레지스터와 메인 메모리의 속도 차이에 의한 성능 저하를 막기 위해 메인 메모리의 저장된 데이터 중 자주 접근하는 데이터를 저장한다. L1 캐시는 CPU 내부에 존재하므로 L1 캐시에서 데이터를 참조할 경우 속도 저하는 발생하지 않는다. 그러나 L1 캐시는 모든 데이터를 저장할 수 없으므로 L2 캐시를 두어 메인 메모리에 대한 접근은 더욱 줄어든다. 따라서 병목현상을 L1 캐시와 메인 메모리에서의 L2 캐시와 메인메모리로 발생지역이 옮겨지게 된다.
캐시 일관성(cache coherency) : 공유 메모리 방식의 병렬 컴퓨터에서 주기억장치와 캐시에 저장된 데이터가 달라지는 현상이다. 타 캐시 데이터가 무효가 되므로 캐시 일관성 문제가 발생될 수 있다.
하드웨어성 캐시 일관성 프로토콜(cache coherence protocol by hardware) : 잠재적인 불일치 조건들을 run time에 동적으로 검출

 

Disk to Register Migration

  • Multitasking environments must be careful to use most recent value, no matter where it is stored in the storage hierarchy.
  • Multiprocessor environment must provide cache coherency in hardware such that all CPUs have the most recent value in their cache. 멀티프로세서의 장점은 처리량의 증가, 비용 절감, 신뢰성의 증가 등이 있다.
  • Distributed environment situation even more complex. (Several copies of a datum can exist. This may not really care much about consistency.)

 

Direct Memory Access Structure

  • 과거에는 장치 데이터를 처리하기 위해 CPU를 거쳐 메모리에 로드하는 방식을 사용했으나 CPU 자원이 너무 많이 소모되는 단점이 발생.
  • 이를 보완하기 위한 DMA 구조는 장치와 메모리를 직접 연결하는 구조이다. 버스가 지원하는 기능.
  • 장치 컨트롤러가 CPU를 거치지 않고 buffer storage에서 메인 메모리로 데이터를 전달한다.
  • CPU에서는 데이터 이동이 완료되었다는 단 한 번의 인터럽트만 발생한다.

 

폰 노이만 구조

폰 노이만 구조

  • 프로그램과 데이터를 하나의 메모리에 저장하여 사용한다.
  • 데이터는 메모리에 읽거나 쓰는 것이 가능하나, 명령어는 메모리에서 읽기만 가능하다.

 

Multiprogramming

  • 한 명의 유저가 CPU와 I/O 장치들을 동시에 작동시킬 수 없으므로 효율성이 떨어진다.
  • 이를 보완하기 위해 여러 프로그램을 메모리에 로드해 두고 한 프로세스가 대기 상태가 되면 다른 프로세스의 작업을 수행시키는 시스템이다.
  • 멀티프로그래밍은 코드와 데이터 같은 job을 구성하고 메모리에 로드한다. 이는 잡 스케줄링(job scheduling)으로 작동된다.

 

Timesharing (Multitasking)

  • 시분할(timesharing)은 멀티프로그래밍의 확장 방식이며, 프로세스마다 작업 시간을 정해 두고 번갈아가면서 작업하는 방식이다.
  • 많은 사용자가 컴퓨터를 동시에 이용하기 위해서 각 사용자는 최소한의 CPU 할당 시간을 가져야 한다. (Process)
  • 메모리에 자리가 없는 경우 CPU 스케줄링을 실행한다. (CPU 자원을 할당하는 작업)
  • 메모리를 너무 많이 사용하게 되는 경우, 반응 시간을 줄이기 위해 가상메모리(virtual memory)를 사용한다. 이는 보조기억장치의 일부를 메인 메모리처럼 사용하는 기술이며, 더 큰 프로그램을 구동할 수 있다.
cf> 스케줄러는 스케줄링을 하고자 하는 목적으로 프로세스를 선택하여 조건을 따라 다양한 스케줄링 큐를 이동시키는 역할을 한다.

 

Dual-Mode Operation

  • 사용자 프로그램이 함부로 시스템에 접근하지 못하도록 두 모드로 나누는데, User modeKernel mode가 있다. 모드 비트(mode bit)는 전자는 1이고 후자는 0이다.
  • 커널 모드에서만 실행 가능한 명령은 privileged라고 표현한다. (특권 명령)
  • 사용자 모드에서 커널 모드 기능을 호출하고 싶을 경우 system call을 이용한다.

Dual-Mode Operation

Memory Protection

  • Must provide memory protection at least for the interrupt vector and the interrupt service routines
  • Memory protection을 위해 두 종류의 레지스터를 배치한다 ; Base 레지스터와 Limit 레지스터
  • Base 레지스터는 허가된 메모리 위치에서 물리 주소의 시작 위치가 저장된다.
  • Limit 레지스터는 범위의 크기가 저장된다.
  • 따라서 CPU가 메모리 위치에 대한 액세스를 요청할 때마다 그 접근할 주소가 베이스 레지스터+리미트 레지스터 사이에 있는지 확인하여 제공한다. 커널 모드에서 OS는 커널과 유저의 메모리를 포함한 모든 메모리 위치에 대한 접근이 허락된다.
  • 베이스 레지스터, 리미트 레지스터를 로딩하는 것은 권한이 필요한 명령어이고, 따라서 커널 모드에서 처리된다.
cf> Inter Process Communication(IPC) : 내부 프로세스끼리 대화하는 과정. Message Passing과 Shared Memory 방식의 모델이 존재한다.

 

Timer

  • 특정 주기에 인터럽트가 발생하여 OS가 컨트롤을 유지시키게 만드는 것이다.
  • 매 시간마다 클락 틱(clock tick)이 감소한다.
  • 타이머가 0에 도달했을 때, 인터럽트가 발생한다.
  • 시분할(timesharing)을 구현하기 위해 이용된다.
  • 커널 모드에서 이용되므로 privileged 명령이다.
User Mode Kernel Mode
  • Read the clock
  • Issue a trap instruction
  • Switch from User to Kernel Mode
  • Set value of timer
  • Clear memory
  • Turn off interrupts
  • Modify entries in device-status table
  • Access I/O device

 

What is a process?

  • 다음에 실행할 명령어를 지정하는 프로그램 카운터 및 관련된 자원의 집합을 가진 능동적인 존재이다.
  • 실행 파일이 메모리에 적재될 때 프로그램은 프로세스가 된다.
프로그램(program) : 명령어 리스트를 내용으로 가진 디스크에 저장된 파일과 같은 수동적인 존재

 

System Call Parameter Passing

  • 운영체제에 매개변수를 전달하기 위한 방법은 세 가지가 있다.
  1. 레지스터 내에서 전달
  2. 레지스터보다 데이터 내용이 많을 시 테이블로 만들어 테이블 주소 전달
  3. 스택 이용 ; 매개변수의 길이를 제한하지 않음

 

System Call의 종류

  • 프로세스 제어 (Process control)
  • 파일 조작 (File management)
  • 장치 조작 (Device Management)
  • 정보 유지 보수 (Information maintenance)
  • 통신 (Communications)