강의 내용 정리/운영체제(12)
-
운영체제(6), Synchronization Tools
Synchronization Tools CPU sheduling을 할 때에는 Fair하면서 response time을 최소화 하는 것이 중요했다. 이번 챕터에서는 프로세스 동기화에 대해 배울 예정이다. 프로세스 생성, 종료, 협력(Inter process communication) 등에 대해 얘기했고, 이는 쓰레드도 마찬가지이다. 예를 들어 크롬 브라우저는 플러그인 프로세스, 탭 별로 렌더링 프로세스, 브라우저 프로세스 등등이 있었다. 사용자의 입력이나 디스크를 읽거나 리모트 웹을 읽는 역할의 브라우저 프로세스이 수행되고, 어떤 시점에서 렌더링 프로세스와 동기화가 되어야지 데이터를 주고 받을 수 있다. 어떤 시스템 콜을 사용해서 동기화를 이뤄낼 것인가, 혹은 동기화를 커널이 알아서 하거나, 어플리케이션 ..
2022.12.18 -
운영체제(5), CPU Scheduling
CPU Scheduling 복습 context switching을 할 때는 실제 프로세스보다 작은 단위인 쓰레드가 선택된다. Process Execution 프로세스를 실행하는 것은 명령어를 실행하는 것이다. 명령어를 수행하다가 read from file이나 write from file이 등장하면 실제 해당 작업은 I/O 장치가 수행된다. 이때 명령어들의 집합을 수행하는 구간을 CPU burst, I/O가 끝나기를 기다리는 구간이 I/O burst이다. CPU burst vs I/O burst CPU-bound process CPU burst가 길고 I/O burst가 짧은 구간 일반적으로 사용자와 인터렉티브하지 않은 프로세스 ex) 딥러닝, 과학 계산, 시뮬레이션 프로그램 등등 일반 사용자들이 쉽게 사..
2022.12.18 -
운영체제(4), Threads & Concurrency
Threads & Concurrency 3장 내용 복습 Process: 프로그램을 실행하는 주체(단위) 프로그램은 하나지만 프로세스는 여러개일 수 있다. 예를 들어 HWP 프로그램은 하나지만 파일을 여러개 열고 있으면 프로세스가 여러개 사용될 수 있다. 구글의 크롬 브라우저는 Renderer, Plug in, Browser process가 존재해 브라우저를 열어준다. 운영체제가 이 프로세스를 관리하기 위해 PCB를 사용한다. 프로세스는 ready, running, waiting의 상태를 번갈아가며 실행된다. 레디 큐에 있는 프로세스를 선택하는 것을 스케줄링, 이를 cpu에 올리는 작업을 디스패치라 한다. 스케줄링과 디스패치를 하나의 큰 틀에서 스케줄링이라고 한다. 디스패치를 한다는 것은 cpu의 레지스터..
2022.12.18 -
운영체제(3), Processes
Processes 프로그램과 프로세스 프로그램 파일 시스템에 저장된 실행파일로 파일을 실행하면 메모리에 로딩돼서 실행된다. 프로세스 프로그램을 실행하는 주체로, cpu는 프로세스의 실행 순서를 결정하는 스케줄링의 작업도 진행한다. 프로세스 ID(PID)가 정수 숫자로 붙여진다. 이때 스케줄링은 어떤 순서로 작업을 해야 가장 효율적인지를 감안하여 알고리즘을 짠다. 프로세스는 프로그램의 실체인 인스턴스가 된다. 유닉스가 처음 등장했을 때의 가장 작은 실행 및 스케줄링 단위가 프로세스였다. 지금은 쓰레드가 가장 작은 단위이다. 메인 프레임 시절에는 프로세스라는 이름 대신 job이라고 불렀다. 최초의 OS는 IBM에서 만들었는데 이 당시에는 task라고 불렀다. 유닉스에서는 프로세스라고 이름을 정의한 것에서 이..
2022.12.18 -
운영체제(2), Operating System Structures
Operating System Structures OP Service 시스템 콜이 제일 중요하다. 소프트웨어들이 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공하는 것이 System Call이다. OS의 기능이라 해도 크게 다르지 않다. PC로 오면서 GUI가 이뤄져서 User Interface도 OS의 일부이다. 커널은 항상 수행 중인 프로그램이고, 운영체제는 커널과 시스템 프로그램을 합친 개념이다. 시스템 프로그램은 커널을 활용하기 위한 도구이다. 이 프로그램은 커널을 설치할 때 같이 설치되는 프로그램이다. OS를 크게 보면 사용자에게 쉽게 사용할 수 있는 인터페이스를 제공하는 것과 운영체제를 사용할 수 있는 프로그램으로 구성되어있다. 리눅스와 유닉스의 User Interface는 CLI(커멘드 ..
2022.12.18 -
운영체제(1), Introduction
Introduction 1. 컴퓨터란? 컴퓨터 하드웨어 위에서 컴퓨터 소프트웨어가 수행하는 장치 컴퓨터 하드웨어는 cpu, 메모리, io 장치로 구성된 장치이다. 메모리는 주기억장치(메인메모리), 보조기억장치(세컨더리 스토리지)로 나눌 수 있다. 일반적으로 컴퓨터를 지칭할 때 pc를 의미하지만 조금 더 넓은 측면에서 바라본다면 Server computer도 있고, Embedded computer 등등도 있다. 컴퓨터의 정의를 기억하고 보면 더 넓은 범위에서 컴퓨터를 구분할 수 있다. 위의 정의 상에서는 옛날 자동차는 컴퓨터가 아니지만 요즘은 컴퓨터가 맞다고 할 수도 있다. 아반떼는 mcu가 연결되어서 연산을 처리한다. 대표적으로 테슬라는 커다란 메인보드가 동작들을 제어한다. TV 또한 브라운관 티비인 경..
2022.09.20