공부
-
[공룡책] Ch 5. CPU 스케줄링공부/운영체제(OS) 2022. 4. 27. 02:56
이 글은 공룡책을 읽고 정리한 글입니다. 0. 소개 CPU 스케줄링은 다중 프로그램 운영체제의 기본이다. CPU 스케줄링을 통해 보다 더 효율적으로 CPU를 사용할 수 있다. 그래서 이 장에서는 스케줄링 개념과 여러 스케줄링 알고리즘을 소개한다. 그리고 일반적인 스케줄링을 논의하는 경우에는 프로세스 스케줄링이라는 단어를 사용하고, 스레드에 국한된 개념에는 스레드 스케줄링이라는 단어를 사용한다. 1. 기본 개념 코어가 하나인 시스템에서는 한순간에 오직 하나의 프로세스만이 실행될 수 있다. 나머지 프로세스는 CPU의 코어가 가용(available) 상태가 되어 다시 스케줄 될 수 있을 때까지 기다려야 한다. 다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행중인 프로세스를 가지게 하는데 있다..
-
[공룡책] Ch 4. 스레드와 병행성공부/운영체제(OS) 2022. 4. 26. 16:35
이 글은 공룡책을 읽고 정리한 글입니다. 0. 소개 3장에서는 한 프로세스가 하나의 제어 스레드로 프로그램을 실행한다고 가정하였는데, 현대에서는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 그리고 다중 CPU를 제공하는 최신 다중 코어 시스템에서 스레드 사용을 통한 병렬 처리의 기회를 식별하는 것이 중요하다. 그래서 이 장에서는 스레드와 다중 스레드 컴퓨터 시스템에 대해 자세히 살펴보려고 한다. 1. 개요 스레드 - CPU 이용의 기본 단위 - 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 스택으로 구성 - 같은 프로세스에 속한 다른 스레드와 운영체제 자원들을 공유 현대 운영체제는 한 프로세스가 여러 개의 프로세스를 가지고 있어서 프로세스는 동시에 하나 이상의 작업을 수행할 수 있는점..
-
[공룡책] Ch 3. 프로세스공부/운영체제(OS) 2022. 4. 26. 14:20
이 글은 공룡책을 읽고 정리한 글입니다. 0. 소개 프로세스란 공식적으로는 모든 CPU의 활동을 말하고, 비공식적으로는 실행 중인 프로그램을 말한다. 운영체제가 복잡해질수록 커널 안에서 다양한 시스템 작업을 최선으로 처리할 필요가 있다. 그래서 하나의 시스템은 프로세스의 집합체로 일부는 사용자 코드를 실행하고, 일부는 운영체제 코드를 실행한다. 모든 프로세스는 잠재적으로 병행 실행이 가능하고, CPU는 이들 프로세스 가운데서 다중화된다. * 다중화란 장애가 발생해도 시스템 기능을 계속 수행할 수 있도록 하는 것 이번 장에서는 프로세스가 정확히 무엇인지, 운영체제에서 어떻게 표현되는지, 어떻게 작동하는지에 대해 다룰 예정이다. 1. 프로세스 개념 운영체제를 논의할 때 모든 CPU 활동들을 프로세스라고 부르..
-
[공룡책] Ch 2. 운영체제 구조공부/운영체제(OS) 2022. 4. 19. 17:17
이 글은 공룡책을 읽고 정리한 글입니다. 0. 소개 운영체제는 프로그램이 실행되는 환경을 제공해준다. 내부적으로 운영체제는 여러 다른 노선을 따라 구성되므로 각각의 노선마다 구조가 크게 차이가 난다. 그래서 운영체제를 설계하려면 여러가지 전략과 알고리즘을 잘 선택해야 한다. 운영체제를 살펴볼 때 좋은 세가지의 관점이 존재한다. - 운영체제가 제공하는 서비스에 초점을 둔 관점 - 운영체제가 사용자와 프로그래머에게 제공하는 인터페이스에 초점을 둔 관점 - 시스템의 구성요소와 그들의 상호 연결에 초점을 둔 관점 이번 장에서는 위의 관점들을 모두 살펴보면서 알아야할 내용들에 대해 다룰 예정이다. 1. 운영체제 서비스 위 그림은 운영체제 서비스에 초점을 둔 관점으로 이런 서비스는 프로그래머가 프로그래밍 작업을..
-
[공룡책] Ch 1. 서론공부/운영체제(OS) 2022. 4. 12. 17:07
이 글은 공룡책을 읽고 정리한 글입니다. 0. 서론 운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어이고, 응용 프로그램을 위한 기반을 제공하며, 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 수행한다. 1. 운영체제가 할 일 컴퓨터 시스템은 크게 네 가지 구성요소인 하드웨어, 운영체제, 응용 프로그램, 사용자로 구분할 수 있다. 1. 하드웨어 CPU, 메모리, I/O 장치와 같이 기본 계산용 자원을 제공한다. 2. 응용 프로그램 워드 프로세서, 스프레드 시트, 컴파일러, 웹 브라우저 등은 사용자의 계산 문제를 해결하기 위해 이들 자원이 어떻게 사용될지 정의한다. 3. 운영체제 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정한다. 운영체제는 자기자신만으로는 유용한 기..