[학교 수업]/[학교 수업] Operating System

Basic concepts CPU utilization을 최대화하기 위해서 multiprogramming은 필수적입니다. 이때 CPU의 cycle은 CPU burst와 I/O burst의 반복으로 이뤄집니다. *CPU burst에 의해 I/O burst가 일어나기에, CPU burst가 일반적으로 우선합니다(시간적으로). CPU Scheduler Short-term scheduler는 ready queue에 있는 process들 중 CPU에 할당할 process를 선택하는 역할을 맡습니다. 이때 CPU scheduler가 동작하는 경우는 아래의 4가지 경우입니다:Terminates; running 중인 process가 종료되는 경우Switches from running to waiting queueSw..
Motivation 현대의 응용 프로그램들은 대부분 multithreaded환경입니다. Process를 생성하거나 Process를 기준으로 context switch를 하면 Process자체가 너무 큰 단위이다보니 overhead가 발생합니다. 하지만 Thread의 생성이나 context switch는 이에 비해 가볍게 수행할 수 있어서 Thread가 중요해졌습니다. *kernel들은 일반적으로 multithreaded입니다. Multithreaded Server Architecture multithread환경을 이용한 서버 구조는 다양한 사용자의 요청들을 비동기적으로 처리할 수 있어 효율성이 올라갑니다: 만약 single-thread 환경이었다면, server는 request를 받아들인 후 client..
Creating a Separate Process via Windows API Process Termination 프로세스는 마지막 명령을 실행한 후, OS에 의해 내부적으로 exit() system call을 호출합니다. 이때 해당 프로세스의 부모 프로세스는 wait()을 통해 자식 프로세스의 상태 정보를 얻을 수 있습니다. 그리고 OS는 해당 프로세스의 자원을 deallocation합니다. 부모 프로세스는 다음과 같은 이유로 자식 프로세스의 실행을 종료시킬 수 있습니다:Child has exceeded allocated resources; 자식 프로세스가 자원 할당량을 초과한 경우Task assigned to child is no longer required; 더 이상 자식 프로세스가 필요하지 않은 ..
Chapter 2. Implementation OS는 구현 방법이 다양합니다. (1) 초기 OS는 어셈블리어로 구성되었으며, (2) system programming language로는 Algol이나 PL/1과 같은 언어를 사용했었습니다. (3) 현재는 대부분 C, C++로 이루어져있습니다. 사실 OS는 기능이 다양하기 때문에 다양한 언어들로 구현됩니다. 가장 낮은 수준은 어셈블리로, 주로 C언어로 구성되며, PERL, Python, shell script같은 scripting language들을 사용하기도 합니다. 높은 수준의 언어를 사용할 수록 다른 하드웨어와의 이식성이 올라가지만 속도가 느려지는 단점이 있습니다. 또한 Emulation을 이용해서 OS가 그에 맞지 않는 하드웨어 위에서도 동작하도록 ..
Operating System Services OS는 사용자에게 프로그램이나 서비스가 실행할 수 있는 환경을 제공해줍니다. 이는 다음과 같은 기능들을 포함합니다:User Interface: 사용자가 OS에게 명령을 주는 인터페이스를 말합니다.Command-Line Interface (CLI)나 Graphical User Interface (GUI), Batch Interface등의 다양한 인터페이스 종류들이 존재합니다.Program execution: OS는 사용자의 프로그램을 메모리로 load하여 실행할 수 있도록 도와주며, 실행 뿐만 아니라 정상적/비정상적으로 동작하고 있는지도 검출합니다(indicating error).I/O operation: 대부분의 프로그램은 I/O동작을 필요로합니다. 이때 O..
Storage Definitions and Notation Review  가징 기본적인 컴퓨터의 저장 단위는 bit입니다. 이는 2개의 값, 0과 1을 저장할 수 있는 저장 공간의 크기를 말합니다. 컴퓨터가 발전함에 따라 더 큰 저장 단위가 필요해졌고, 8-bit를 묶어서 byte라고 정의했습니다. 그리고 각각 1024byte를 KB, 1024^2byte를 MB 등등의 단위를 붙여 더 큰 저장단위를 만들어갔습니다. 한편, word라는 단위로 컴퓨터 구조의 가장 기본적인 저장 단위를 나타내기도 합니다. 이는 컴퓨터 구조에 따라 달라질 수 있습니다. 예를 들어, 64-bit컴퓨터의 경우 메모리 주소의 word는 64-bit(8byte)입니다. Storage Structure 컴퓨터에서 사용하는 저장장치는 다..
What is an Operating System? OS는 사용자와 컴퓨터 하드웨어 사이에 중개인으로서 행동하는 프로그램을 말합니다. 일반적으로 OS의 목표는  (1) 사용자의 프로그램을 실행시키고, 사용자의 문제를 더 쉽게 푸는 것, (2) 컴퓨터 시스템을 더 사용하기 쉽게 만드는 것(Computer system의 resource를 관리해준다. 자원관리의 측면), (3) 컴퓨터의 하드웨어를 더 효율적인 방법으로 사용하게 하는 것(Hardware resource (e.g., CPU resource)들을 관리함으로써 효율성을 올림)이 있습니다. Computer System Structure 컴퓨터 시스템의 구조는 아래 4개의 요소로 구성됩니다:Hardware: 기본적인 컴퓨팅 자원을 제공합니다.CPU, m..
건대다니는 컴공생
'[학교 수업]/[학교 수업] Operating System' 카테고리의 글 목록