Computer Science/시스템 프로그래밍

[시스템 프로그래밍] Chapter 1

seungwon9201 2024. 3. 31. 21:42

Terminology

  • Asynchronous operation(event) : 비동기식 

synchronous(정해진 시간 순서에 발생하는 이벤트)와는 다르게 예측할 수 없는 이벤트들을 처리할 수 있어야 하는 시스템 (ex. 키보드 누르기, 프린트 요청하기)

  • Concurrency : 동시성(병행성)↔parallel task(병렬)

parallel task : 동시의 테스크가 동시에 시작되는 것

Concurrency : 동시에 시작되는 거처럼 보임. 여러프로세스가 하나의 CPU를 공유하면서 사용하면 사용자 눈에는 두 개의 프로세스가 동시에 실행되는 것처럼 보임

  • Communication : 통신

 

Time and speed

OS가 관리하는 시스템 리소스는 s/w 와 h/w

  • Disk drives(Hard disk) : mechanical요소가 들어가서 속도가 기하급수적으로 상승하지 못함, 상대적으로 cpu에비 속도를 향상하는 것이 제한이 되었다.
  • Processor(CPU) : 속도가 기하급수적으로 상승

중요하게 살펴볼 개념

  • Multiprogramming

multi programming : 생성된 프로세스는 실행대기상태로 ready que로 들어가고 그 여러 프로세스들이 실행을 대기하는 것

single programming : CPU에 프로세스가 하나만 들어가는 것

system call : OS에게 리소스를 사용해 달라고 요청하는 함수

  • Time sharing

프로세스들이 동시에 실행하는 거처럼 보이게 하는 방식

  • Multiprogramming vs Time sharing

멀티프로그래밍은 여러프로세스들이 대기상태에 있을 수 있고 time shacring은 대기 중인 프로세스들 사이를 빠르게 스위치 치하면서 CPU를 조금씩 사용하는 방식

  • Interrupts

OS가 많은 작업을 수행하다가 갑자기 해야 할 일이 생기면(Asynchronous event) 그 이벤트를 처리해야 하는데 이것을 알려주고 처리하는 수단이 인터럽트임. pc(프로그램 카운터) : 다음에 실행해야 될 주소를 저장하는 것

  • Signals

 OS가 프로세스에게 이벤트가 발행했다는 사실을 통지해 주는 수단

Synchronous signal : 불법적인 지시가 적혀있는 프로세스 or dive-by-zero 같은 오류가 발생했다고 알려주는 시그널

Asynchronous signal : 사용자가 키보드를 누르는 상황 같은 이벤트를 알려주는 시그널

  • Processes : 프로그램을 메모리에 옮겨서 실행하면 그 실행 중인 프로그램이 프로세스
  • Threads : 프로세스가 하나씩 실행하는 실행흐름을 스레드
  • Fault tolerance : 시스템에 오류가 발생하더라도 전체 시스템이 멈추지 않고 서비스를 계속 제공해 주는 서비스
  • Buffer overflows : 정해진 버퍼의 크기를 넘어간 것