CS/운영체제(24)
-
[운영체제] Chapter 6. Process Synchronization (3)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 Semaphores, Implementation, Classical Problems of Synchronization, Bounded-Buffer Problem, Readers-Writers Problem, Dining-Philosophers Problem 1. 고질적인 프로세스 동기화 문제 1-1. Bounded-Buffer Problem (Producer-Consumer Problem), 유한 버퍼 문제 (생산자 소비자 문제) Producer: 생산자 프로세스: 공유 버퍼에 데이터를 하나 만들어 집어넣는 역할 Consumer: 소비자: 공유 버퍼에 있는 데이터를 꺼내는 역할 shared data: buffer 자체..
2022.12.28 -
[운영체제] Chapter 6. Process Synchronization (2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 Semaphores, Critical Section of n Processes, Block/Wakeup Implementation, Two types of Semaphores, Deadlock and Starvation 1. Semaphores, 세마포어 앞의 방식들을 추상화 시킴 Semaphore S 추상 자료형: object와 operation으로 구성 integer variable: 자원의 개수를 의미, 정수 값을 가질 수 있다. 두 가지(P, V) atomic 연산에 의해서만 접근 가능하다. 변수 S에 대한 P연산: 세마포어 값(= 공유 데이터 값) 획득 P(S): while (S
2022.12.24 -
[운영체제] Chapter 6. Process Synchronization (1)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 데이터의 접근, Race Condition, OS에서의 race condition, The Critical-Section Problem, if you preempt CPU while in kernel mode, 프로그램적 해결법의 충족조건, Peterson's Algorithm, Synchronization Hardware 1. 데이터의 접근 1-1. 데이터의 접근 (1) 데이터가 저장되어 있는 위치에서 → (2) 저장된 데이터를 읽어와서 연산 → (3) 연산한 결과를 가져온 곳에 다시 저장 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐: process synchronization 문제 ..
2022.12.23 -
[운영체제] Chapter 5. CPU Scheduling (1), (2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 CPU and I/O Bursts in Program Execution, CPU-burst Time의 분포, 프로세스의 특성 분류, CPU Scheduler & Dispatcher, Scheduling Algorithms, Scheduling Criteria, FCFS(First-Come First-Served), SJF(Shortest-Job-First), Example of Non-Preemptive SJF, Example of Preemptive SJF, 다음 CPU Burst Time의 예측, Expotemtial Averaging, Priority Scheduling, Round Robin(RR), Multi..
2022.12.22 -
[운영체제] Chapter 4. Process Management (2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 프로세스 생성(Process Creation), 프로세스와 관련한 시스템 콜, 프로세스 간 협력, Message Passing, Interprocess communication 1. fork() 시스템 콜 A process is created by the fork() system call. 프로세스는 fork() 시스템 콜에 의해 생성된다. fork() 시스템 콜: 운영체제에게 새로운 프로세스를 만들라는 요청 fork() 시스템 콜을 하게 되면 fork() 함수를 호출한 프로세스와 똑같은 프로세스가 하나 생성됨 fork() 시스템 콜로 새로운 프로세스가 생성되면 새로운 프로세스는 main함수의 시작 부분부터 실행하지 ..
2022.12.20 -
[운영체제] Chapter4. Process Management (1)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 프로세스 생성(Process Creation), 프로세스 종료(Process Termination) 1. 프로세스 생성 (Process Creation) 부모 프로세스(Parent process)가 자식 프로세스(children process) 생성 : 복제 생성 부모 프로세스 1개가 → n개의 자식 프로세스를 생성할 수 있기 때문에 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영 체제로부터 받는다. 부모와 공유한다. 전혀 공유하지 않는 모델 부모 프로세스가 자식 프로세스를 낳는 시점부터 별도의 프로세스이기 때문에 서로 경쟁하는 사이 ~ 원칙적으로 자원을 공유하지는 않는다. 부모와 자식이 모든 자원..
2022.12.15 -
[운영체제] Chapter 3. Process(2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 Thread, Single and Multithreaded Process, Benefits of Threads, Implemetation of Threads 1. Thread(스레드) A thread (or lightweight process) is a basic unit of CPU utilization 스레드(가벼운 프로세스)는 프로세스 내부의 여러 개의 CPU 수행 단위이다. 동일한 일을 하는 프로세스가 여러 개 있으면 별도의 주소 공간이 여러 개 만들어져 메모리가 낭비됨 그렇다면 같은 일을 하는 프로세스를 여러 개 띄워 놓고 싶다면? 주소 공간은 1개만 띄어 놓고 각 프로세스마다 다른 부분의 코드를 실행할 수 ..
2022.12.14 -
[운영체제] Chapter 3. Process(1)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 프로세스의 개념, 프로세스의 상태(Process State), 프로세스의 개념, 프로세스 상태도, Process Control Block(PCB), 문맥 교환(Context Switch), 프로세스를 스케줄링하기 위한 큐, Ready Queue와 다양한 Device Queue, 스케줄러(Scheduler) 1. 프로세스의 개념 Process is a program in execution 프로세스는 실행 중인 프로그램이다 1-1. 프로세스의 문맥(context) 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보를 의미 여러 프로세스가 함께 수행되는 시분할 시스템 환경에서 CPU를 다시 획득..
2022.12.11 -
[운영체제] Chapter 2. System Structure & Program Execution (2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 컴퓨터 시스템 구조, 인터럽트(Interrupt), 동기식 입출력과 비동기식 입출력, 서로 다른 입출력 명령어, 저장장치 계층 구조, 프로그램의 실행(메모리 load), 커널 주소 공간의 내용, 사용자 프로그램이 사용하는 함수, 프로그램의 실행 1. 동기식 입출력과 비동기식 입출력 동기식, 비동기식 입출력 모두 I/O의 완료는 인터럽트로 알려줌 I/O에서 일어나는 작업과 CPU에서 일어나는 작업이 sync 되어야 하면 동기식 I/O 라고 하고, sync가 될 필요가 없다면 비동기식 I/O 1-1. 동기식 입출력(synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에게 넘어감..
2022.11.24 -
[운영체제] Chapter 2. System Structure & Program Execution (1)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 컴퓨터 시스템 구조, Mode bit, Timer, Device Controller, 입출력(I/O)의 수행, 시스템 콜(System Call), 인터럽트(Interrupt), DMA(Direct Memory Access) Controller 컴퓨터 시스템에서 하드웨어가 어떻게 동작하는지 프로그램들이 하드웨어 위에서 어떻게 돌아가는지 1. 컴퓨터 시스템 구조 컴퓨터 시스템의 구조는 컴퓨터 내부장치인 CPU, 메모리와 컴퓨터 외부 장치인 디스크 , 키보드, 마우스, 모니터, 네트워크 장치 등으로 구성된다. 컴퓨터는 외부장치에서 내부장치로 데이터를 읽어와 각종 연산을 수행한 후, 그 결과를 외부장치로 다시 내보내는 방식으..
2022.11.23 -
[운영체제] Chapter 1. Introduction to Operating Systems
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 운영체제란 무엇인가? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 좁은 의미의 운영체제 - 커널 운영체제의 핵심 부분으로 컴퓨터를 부팅한 이후 항상 메모리에 상주하는 부분 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간에 낭비가 심할 것이기 때문 넓은 의미의 운영체제 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 메모리에 상주하지 않는 별도의 독립적인 프로그램이지만 운영체제의 범주에는 포함 2. 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 - 하드웨어를 위한 역할 프로세서, 기억장치, 입출력 장치(= H..
2022.11.20 -
[운영체제] Chapter 1. 강의소개
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 1. 강의 목표 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 운영체제의 개념과 역할, 운영체제를 구성하는 각 요소 및 그 알고리즘의 핵심적인 부분에 대해 기초부터 학습한다. 2. 강의 내용 운영체제 개요 컴퓨터 시스템의 구조 프로세스 관리 CPU 스케줄링 병행 제어 데드락 메모리 관리 가상 메모리 파일 시스템 입출력 시스템 디스크 관리 3. 운영체제(Operating System, OS)란 무엇인가? 컴퓨터 하드웨어 바로 위에 설치되는 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 컴퓨터 하드웨어 바로 위에 운영체제가 설치되어 → ..
2022.11.19