Computer Science
-
[OS] Interrupt와 System CallComputer Science/OS 2022. 3. 3. 21:00
Dual Mode 컴퓨터가 일을 수행하는 가장 기본적인 방식은 메모리에서 instruction을 받아와서 이를 수행하는 것이다. 다만, OS는 다양한 애플리케이션들이 구동되는 환경으로부터 컴퓨터를 지키기 위해 Dual Mode operation을 사용한다. 말 그대로 2가지 모드를 기반으로 컴퓨팅 리소스를 운용한다는 것이다. Processor Register에 있는 mode bit으로 mode가 전환되는데, mode bit이 0일 때 구동되는 Kernel Mode와 1일 때 구동되는User Mode가 있다. Kernel Mode는 OS 단에서 처리해야 할 명령어들을 수행한다. 예를 들어 User Application에서 시스템 콜을 통해I/O 작업이 요청되었을 때 I/O 작업을 수행한다거나, Timer ..
-
동기와 비동기, 블로킹과 논블로킹Computer Science/OS 2022. 2. 25. 07:46
웹개발을 접해볼 일이 있었다면, 그 중에서도 특히 자바스크립트를 쓸 일이 있었다면 오늘의 주제는 반드시 접해봤을 것이다. 동기와 비동기, 블로킹과 논블로킹은 작업을 수행하는 주체 간의 처리 방식을 표현하는 용어들이다. 그러나 다른 개념임에도 종종 혼동되거나 의미 자체를 명확히 알지 못하는 경우가 많아 명확히 정리해보고자 한다. 블로킹과 논블로킹 잘 기억할 수 있도록 영어 단어 뜻 그대로 이해해보자면 블로킹은 막힌다는 뜻으로, 논블로킹은 막히지 않는다는 뜻으로 해석할 수 있다. 그런데 무엇이 막히고 막히지 않는다는 것일까? 바로 작업을 요청한 쓰레드이다. 위 그림을 살펴보면 블로킹의 경우, Kernel에 작업을 맡긴 Application이 Kernel의 작업이 끝날 때까지 다른 작업을 수행하지 않는 것을 ..
-
[OS] 프로세스의 구성Computer Science 2020. 8. 11. 19:21
· 프로그램이란? 프로그램은 짜여져 있는 코드가 컴파일러에 의해 Binary Code(Executable Code)로 바뀌어 Storage에 저장되어 있는 상태를 지칭하는 것으로, 프로세스에 비해 Passive한 개념이다. · 프로세스란? 프로세스는 메인 메모리에 프로그램이 들어와 CPU의 수행 대상이 된 상태를 지칭한다. 쉽게 말하면 "수행 중인 프로그램"이라고 할 수 있을 것이다. · 프로세스의 구성 - Images 실행 중인 프로그램의 내용을 담고 있다. 1. Program Code 프로그램 코드가 컴파일된 바이너리 코드. text라고도 지칭함 2. Initialized Data 초기화된 전역변수 3. Uninitialized Data 초기화되지 않은 전역변수. 시스템 상에서 0으로 초기화된다. 4..