본문 바로가기

CS지식/운영체제

OS가 하는 일

컴퓨터의 성능 향상 기준

  1. Throughput (처리율) — job/sec
  2. Utilization - % of time busy
  3. Response time - sec / job

 

Operating System 이란?

OS 는 유저 프로그램을 실행할 수 있도록 해준다. 컴퓨터 시스템을 사용하기 편리하게 만든다. 컴퓨터 하드웨어를 효율적으로 사용할 수 있도록 한다.

OS는 자원할당자이다.

OS 도 프로그램이다.

모든 프로그램은 메모리에 올라와야 실행된다. kernel은 항상 메모리에 있는 프로그램

 

<System Bus>

****CPU와 각종 디바이스 컨트롤러는 버스로 연결되어있다. 공유 메모리에 접근하기 위해서

bus는 동시에 여러 장치가 데이터를 공유할 수 없다. Date bus , Address Bus, Control Bus 가 존재함.

각각의 I/O 장치는 바로 버스에 연결되어있지 않고 controller를 통해서 연결되어 있다. Controller는 PC 구매시 안에 들어있다.

 

<boot>

하드디스크에 있는 boot sector에 있는 OS 이미지 파일을 메인메모리에 적재한다.

  1. 디스크의 OS 커널을 찾는다
  2. OS 커널을 메모리에 로드한다
  3. OS 실행을 시작한다

OS는 전기가 꺼져도 지워지지 않는 하드디스크나 SSD에 저장된다.

 

<Storage>

register - cache - main memory - nonvolatile memory - hard-disk drives - optical disk - magnetic tape

assess time 이 점점 느려진다. 저장공간이 점점 커진다.

 

caching : 느린 메모리에서 빠른 저장시스템으로 정보를 copy하는 것. 자주 사용되는 information이 복사되는 것

main memory : CPU가 직접 접근 가능함. 랜덤 엑세스. volatile하다. (RAM,DRAM)

Hard-Disk Drives (HDD)

Solid-state disks(SSD) : 하드디스크보다 빠르고, nonvolatile 하다.

 

 

주요 구성 요소

  1. Process Management

프로세스는 실행중인 프로그램. 프로세스에게 적절한 CPU time, memory, I/O 디바이스 등 메모리에 들어가기 위한 자원 등 작업을 수행하기 위해 자원이 필요하다.

(CPU 안의 레지스터는 다음에 실행할 명령어를 담고 있다.)

프로세스는 순차적으로 명령어를 수행한다.

  • process management
  • process Synchronization : 영향을 주고받는 프로세스들의 동기화 ex > 크롬 새 탭 

2. Memory Management

  • 메인메모리
  • 가상메모리

3. File-System Interface : 물리적인 요소를 논리적인 저장공간으로 추상화하는 것

 

4. Mass-storage Structure : Disk 등등

 

5. I/O systems

 

6. OS Security

컴퓨터 구조

single general-purpose processor vs Multiprocessors

 

멀티프로세서의 장점

  1. 처리율 향상
  2. 신뢰성 향상 - 결함 허용 (프로세서가 많으니까 한 군데서 결함이 나도 크게 문제 없다)

멀티프로세서의 종류

  1. Asymmetric Multiprocessing : 각각의 프로세스가 특정 업무를 수행한다
  2. Symmetric Multiprocessing : 각각의 프로세스가 모든 업무를 나누어 수행한다.

 

Von Neumann 구조 1.35

명령어 패치와 데이터 연산은 같은 시간에 발생할 수 없다. 같은 버스를 공유하기 때

 

Stored Program

프로그램은 메인 메모리에 이런식으로 로드된다.

text : program code

data : 전역변수, static 변수 (프로그램 시작 전에 자리를 잡고 시작하는 것이다)

heap : 동적 할당 메모리 malloc()

stack : 지역변수, 함수, 리턴 주소 (함수 호출할 때 만들어졌다가 종료하면 사라진다)

 

멀티 프로그래밍 vs 멀티태스킹 vs 멀티 프로세싱 vs 멀티 스레딩 vs 멀티 코어

멀티 프로그래밍 : 한 프로세스가 I/O 인터럽트를 처리할 때 CPU 시간을 낭비하지 않고 다른 프로세스를 처리할 수 있도록 해줌. 작업이 메모리에 유지되어야 한다.

멀티태스킹 : (time sharing) CPU가 스케줄링에 의해 다수의 작업이 번갈아가면서 진행되는 것이다. 응답시간이 1초 미만이 되도록 한다.

멀티 프로세싱 : 다수의 프로세서가 다수의 작업을 함께 처리하는 것이다.

멀티 스레딩 : 하나의 프로세스를 다수의 스레드로 나누어 자원을 공유하는 등 수행 능력을 향상시키는 것

멀티 코어 : 프로세서 안에 CPU core를 여러개 두어 성능을 향상시킴

 

UMA VS NUMA

메모리에 접근속도 일정 vs 모든 메모리 접근 속도가 동일하지 않은 것

 

Distributed Systems

  • 메모리 공유 x
  • global clock x

 

컴퓨터 시스템 환경 - 예전이랑 많이 바뀜

  • Client-server Computing
  • Peer-to-Peer
  • mobile smartphone, tablet
  • Cloud Computing - SaaS(Software as a Service) ex) word processor, Paas(Platform as a Service) ex) database server, IaaS(Infrastructure as a Service) ex) virtual machine

Virtualization - 가상화 like virtual machine

Real time Embedded Systems - real time OS like VxWorks . 시간 제약 안에 실행되어야 하는 시스템으로, 시간을 정확히 설정하는 것이 중요하다.

'CS지식 > 운영체제' 카테고리의 다른 글

운영체제 : Synchronization  (0) 2023.09.23
운영체제 : CPU 스케줄링 간단 정리  (0) 2023.09.23
운영체제 : Thread 란?  (0) 2023.09.23
운영체제 : Process란? (개념, 용어 정리)  (0) 2023.09.23
OS 구조  (0) 2023.09.23