본문 바로가기
반응형

책/혼공 컴퓨터구조+운영체제33

운영체제 - 동기화 기법(뮤텍스 락,세마포,모니터) 1. 뮤텍스 락(Mutex lock) 상호배제를 위한 동기화 도구(자물쇠 역할) 뮤텍스 락의 단순한 형태 전역 변수 하나, 함수 두 개 자물쇠 역할 : 프로세스들이 공유하는 전역 변수 lock 임계 구역을 잠그는 역할 : acquire 함수 임계 구역의 잠금을 해제하는 역할 : release 함수 01 auquire 함수 프로세스가 임계 구역에 진입하기 전에 호출 임계 구역이 잠겨 있다면 - 임계구역이 열릴때까지(lock이 false가 될 때까지) 임계 구역을 반복적으로 확인 임계 구역이 열려 있다면 - 임계 구역을 잠그기(lock을 true로 바꾸) While문을 통해 계속 임계 구역이 잠겨있는지 없는지 확인하므로 Busy Waiting(바쁜 대기)이다. 02 release 함수 임계 구역에서의 작업이.. 2024. 2. 1.
운영체제 - 동기화, 공유 자원, 임계 구역, 상호 배제 동시다발적으로 실행되느 프로세스들은 서로 협력하며 영향을 주고 받는다. 이 과정에서 자원의 일관성을 보장해야 한다. 이렇게 하기 위해서는 반드시 동기화(synchronization)되어야 한다. 동기화란? 특정 자원에 접근할 때 한 개의 프로세스만 접근하게 하거나 프로세스를 올바른 순서대로 실해아게 하는 것을 의미한다. (프로세스 )동기화란? 프로세스들 사이의 수행시기를 맞추는 것이다. 이는 무엇을 의미할까? 실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기 상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 프로세스뿐만 아니라 스레드도 동기화 대상이다. 실행의 흐름을 갖는 모든 것은 동기화의 대상이다. 1. 실행 순서 제어를 위한 동기화 Writer : Book.txt.. 2024. 2. 1.
운영체제 - CPU스케줄링 알고리즘(선입 선처리, 최단 작업 우선, 라운드 로빈, 최소 잔여 시간 우선, 우선순위, 다단계 큐, 다단계 피드백 큐) 1. 선입 선처리 스케줄링(FCFS, First Come First Served) 단순히 준비 큐에 삽입된 순서대로 처리하는 비선점 스케줄링 방식이다. 즉 먼저 CPU를 요청한 프로세스부터 CPU를 할당한다. 호위 효과(Convoy Effect) CPU 버스트 시간이 긴 프로세스가 준비 큐 앞에 위치하게 되면 그 뒤에 있는 짧은 CPU버스트를 가지는 프로세스들도 해당 프로세스의 끝을 기다려야 하는 현상이다. 2. 최단 작업 우선 스케줄링(SJF, Shortest Job First) 호위 효과를 방지하려면 CPU 사용이 긴 프로세스는 나중에 실행하고 CPU 사용시간이 짧은 프로세스는 먼저 실행하도록 한다. 최단 작업 우선 스케줄링은 기본적으로 비선점형 스케줄링 알고리즘으로 분류되지만 선점형으로 구현될 수도.. 2024. 1. 21.
운영체제 - 스레드, 단일 스레드 프로세스와 멀티 스레드 프로세스, 스레드의 구성요소, 멀티프로세스와 멀티 스레드 스레드(Thread) 프로세스를 구성하는 실행의 단위이다. 조금 더 정확하게 표현하자면 스레드란 프로세스를 구성하는 실행의 흐름 단위이다. 그리고 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. 그러므로 스레드를 이용하면 하나의 프로세스에서 여러 부분을 동시에 실행할 수 있다. 단일 스레드 프로세스 실행 흐름이 하나인 프로세스이다. 즉 한의 작업만을 동시에 처리할 수 있다. 그러므로 작업이 순차적으로 진행된다. 멀티 스레드 프로세스 멀티 스레드 프로세스에서는 하나의 프로세스가 한 번에 여러 일을 동시에 처리할 수 있다. 그러므로 여러 작업이 동시에 진행될 수 있다. 스레드의 구성 요소 실행에 필요한 최소한의 정보들이다. 이를 이용해서 독립적으로 실행된다. 01 스레드 ID(Thread ID) 각 .. 2023. 12. 20.
운영체제 - 프로세스 상태, 프로세스 계층 구조(부모 프로세스, 자식 프로세스), 프로세스 생성 기법(fork,exec) PCB에 기록되는 프로세스 상태 프로세스 상태 01생성 상태(new) 이제 막 메모리에 적재되어 PCB를 할당 받은 상태이다. 생성 상태를 거쳐 실행할 준비가 완료되었다면 곧바로 실행되지 않고 준비 상태가 되어 CPU의 할당을 기다린다. 02 준비 상태(ready) 당장이라도 CPU를 할당 받아 실행할 수 있지만 아직 자신의 차례가 아니기에 기다리고 있는 상태이다. 자신의 차례가 되면 CPU를 할당 받아 실행상태가 된다. 준비 상태인 프로세스가 실행 상태로 전환되는 것을 디스패치(dispatch)라고 한다. 03 실행 상태(running) CPU를 할당받아 실행 중인 상태를 의미한다. 할당된 시간 모두 사용시 (타이머 인터럽트가 발생하면) 다시 준비 상태가 되고 실행 도중 입출력 장치를 사용하면 입출력 .. 2023. 12. 15.
운영체제 - 프로세스 개요, 프로세스 제어 블록, 문맥 교환, 프로세스 사용자 영역 작업 관리자에서 현재 프로세스를 직접 확인할 수 있다. 포그라운드 프로세스(Foreground Process) 사용자가 볼 수 있는 공간에서 실행되는 프로세스이다. 일반적으로 사용자가 실행한 응용프로그램이 해당된다. 사용자는 회면에서 해당 프로세스의 실행 상태를 볼 수 있다. 백그라운드 프로세스(Background Process) 사용자가 볼 수 없는 공간에서 실행되는 프로세스이다. 사용자와 직접 상호작용이 가능한 백그라운드 프로세스와 사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스로 나눠진다. ex) 데몬(Daemon), 서비스(service) 작업 관리자에서 서비스를 확인할 수 있다. 모든 프로세스는 실행을 위해 CPU가 필요하다. But CPU 자원은 한정되어 있다. 즉 모든 프로세스.. 2023. 12. 15.
반응형