CS/OS 4

Operating System Concepts 정리 - Ch.05

5.1 Basic Concepts CPU의 코어가 1개라고 하자. 이러면 당연히 한번에 하나의 태스크만 실행될 수 밖에 없다. 만약 순차적으로 모든 일이 진행된다고 해보자. 어... 그림에서 볼 수 있듯이 I/O 대기나 인터럽트가 생기게 된다고 해보자. 그걸 하나 하나 다 기다리려고 하면 뒤 태스크는 손가락만 빨 수 밖에 없고, 결국 효율성이 떨어질 수 밖에 없다. 당연히 효율성을 높이려면 이런 상황에 도래했을 때 태스크를 넘겨줘야 효율성을 높일 수 있을 것이다. CPU-I/O Burst Cycle 프로세스 실행은 CPU 실행과 입출력 대기의 사이클로 구성된다. 즉, 두 state 중 하나에 머물러 있다는 것이다. 프로세스 실행은 CPU Burst로 시작된다. 이어서 I/O Burst가 발생하고, 이어서..

CS/OS 2021.01.21

Operating System Concepts 정리 - Ch.04

4.1 Introduction Thread: CPU 이용의 기본 단위이다. 스레드 ID, Program Counter, Register 집합, 그리고 스택으로 구성된다. 당연히 스레드는 프로세스 내부에 존재하는 것이기 때문에, 같은 프로세스에 속한 다른 스레드와 Code Segment, Data Segment와 열린 파일, Signal과 같은 운영체제 자원들을 공유한다. 단일 스레드라면 당연히 왼쪽처럼 모든 자원을 홀로 소유하는 것 처럼 그려지겠지만, 멀티 스레드는 공유하는 자원과 본인이 보유하는 자원이 구분되기 떄문에 오른쪽으로 봐야 할 것 같다. 현대의 프로그램은 대부분 다중 스레드를 이용한다. (ex. 워드: 그래픽 표시 스레드, 입력 받는 스레드, 맞춤법 검사 스레드 등등...) 서버의 경우를 보..

CS/OS 2021.01.15

Operating System Concepts 정리 - Ch.03

3.1 Process Concept CPU의 활동은 무엇인가? → 시스템 마다 부르는 명칭이 다름. (일괄처리 시스템: job/시분할 시스템: task...) → 하지만 이런 것들은 꽤나 유사함 → 프로세스라고 부르자! 간단하게 보자면, 프로세스는 실행 중인 프로그램이라고 보면 된다. 그래서 프로그램 == 프로세스일까? 아니다. 프로그램은 디스크에 저장된 실행 파일 같은 것들이고, 이 파일이 메모리에 적재되어 실행이 되어야 프로세스라고 할 수 있다. 프로세스는 Program Counter와 Register를 갖고 있고, 메모리 상에서 다음과 같은 형태를 띄고 있다. (물론 일반적으로...) Text Section: 코드 Data Section: 전역 변수 Stack Section: 복귀 주소나 지역 변수..

CS/OS 2021.01.10

Operating System Concepts 정리 - Ch.02

최근에 OS 스터디를 하게 되었는데, 좋은 기회라고 생각하고 학습한 내용을 정리해 보았다. 노션에서 티스토리로 바로 업로드 해주는 기능이 있을 줄은 몰랐는데 써보니까 좋네... 2.1 Operating System Servies OS는 프로그램 실행 환경을 제공한다. 즉, 프로그램과 사용자에게 특정 서비스를 제공함으로써 프로그램이 정상적으로 실행될 수 있는 환경을 제공한다고 볼 수 있다. OS의 종류와 프로그램의 종류에 따라 제공하는 서비스는 달라질 수 있지만, 크게 다음과 같이 볼 수 있다. User Interface: 크게 CLI/GUI 구분. Program Execution: 프로그램을 메모리에 적재해 실행할 수 있도록 함. I/O Operation: 보안 문제 때문에 사용자나 프로그램은 직접 입출..

CS/OS 2021.01.02