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 : 정해진 버퍼의 크기를 넘어간 것
'Computer Science > 시스템 프로그래밍' 카테고리의 다른 글
[시스템 프로그래밍] Chapter 5 (0) | 2024.05.08 |
---|---|
[시스템 프로그래밍] Chapter 4 (0) | 2024.04.12 |
[시스템 프로그래밍] Chapter 3 (0) | 2024.04.10 |
[시스템 프로그래밍] Chapter 2 (0) | 2024.04.06 |
[시스템 프로그래밍] LInux (0) | 2024.03.31 |