분류 전체보기(161)
-
[운영체제] Chapter 8. Memory Management (1)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 Logical vs Physical Address, 주소바인딩(Address Binding), Memory-Management Unit(MMU), Dynamic Relocation, Hardware Support for Address Translation, Some Treminologies, Dynamic Loading, Overlays, Swapping, Dynamic Linking, Allocation of Physical Memory, Contiguous Allocation 1. 논리적(Logical) 주소와 물리적(Physical) 주소 메모리: 주소를 통해 접근하는 저장장치 주소 - 논리적 주소, 물리적 주소..
2023.01.16 -
[운영체제] Chapter 7. Deadlock (1), (2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 교착상태(deadlock), The Deadlock Problem, Deadlock 발생의 4가지 조건, Resource-Allocation Graph(자원할당그래프), Deadlock Prevention, Deadlock의 처리 방법, Deadlock Avoidance, Resource Allocation Graph algorithm, Banker's Algorithm, Example of Banker's Algorithm, Deadlock Detection and Recovery, Deadlock Ignorance 1. Deadlock(교착 상태) 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 된 상태..
2023.01.05 -
[운영체제] Chapter 6. Process Synchronization, Concurrency Control (병행 제어)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 Semaphores, Monitor, Bounded-Buffer Problem, Dining Philosophers Example 1. 세마포어의 문제점 코딩하기 힘들다. 정확성(correctness)의 입증이 어렵다. 자발적 협력(voluntary cooperation)이 필요하다. 한 번의 실수가 모든 시스템에 치명적 영향을 끼친다. V(mutex); //둘이 동시에 들어가는 문제 발생 Critical Section P(mutex); //V연산과 P연산의 순서가 뒤 바뀜 -> 둘이 동시에 들어가는 문제 발생 //Mutual exclusion이 깨짐 P(mutex); Critical Section P(mutex); ..
2022.12.28 -
[운영체제] 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