Computer Science/OS
-
[OS] Race ConditionComputer Science/OS 2023. 1. 17. 22:02
Race Condition 두 개 이상의 cocurrent한 프로세스(혹은 스레드)들이 하나의 자원(리소스)에 접근하기 위해 경쟁하는 상태 → 동시 접근 시 자료의 일관성을 해치는 결과가 나타남! e.g) 공유메모리를 사용하는 프로세스를 커널 내부 데이터를 접근하는 루틴들 간 (예: 커널모드 수행 중 인터럽트로 커널모드 다른 루틴 수행 시) OS에서 race condition은 언제발생하는 가? kernel 수행 중 인터럽트 발생 - 문제점: 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 - 해결법: 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. Process 가 system call을 하며 k..
-
[OS] CPU 스케줄링 - 2 (스케줄링 알고리즘)Computer Science/OS 2023. 1. 17. 21:48
스케줄링 알고리즘 1. 선입선출 스케줄링(First-Come First-Servied: FCFS) 프로세스가 준비 큐에 도착한 시간 순서대로 CPU를 할당하는 시간 먼저 도착한 프로세스의 성격에 따라 평균 대기시간이 크게 달라진다 콘보이 현상이 나타날 수 있다. 콘보이 현상 ? CPU 버스트가 짧은 프로세스가 CPU 버스트가 긴 프로세스보다 나중에 도착해 오랜 시간을 기다려야하는 현상 2. 최단작업 우선 스케줄링(Shortest-Job First: SJF) CPU 버스트가 가장 짧은 프로세스에게 제일 먼저 CPU를 할당하는 방식 SJF 알고리즘은 비선점형 방식과 선점형 방식 두 가지로 구현될 수 있다. 비선점형 방식(nonpreemptive) : 일단 CPU를 획득하면 그 프로세스가 CPU를 자진 반납하..
-
[OS] CPU 스케줄링 - 1 (CPU 스케줄러, 스케줄링 성능평가)Computer Science/OS 2023. 1. 17. 21:32
CPU 프로그램의 기계어 명령을 실제로 수행하는 컴퓨터 내의 중앙 처리 장치 사용자 프로그램이 수행되는 과정 = CPU 과정 + I/O 작업의 반복(입출력 작업) CPU 버스트(burst) 사용자 프로그램이 CPU를 직접 가지고 빠른 명령을 수행하는 일련의 단계 I/O 버스트(burst) I/O 요청이 발생해 커널에 의해 입출력 작업이 요청 된 후 완료되어 다시 CPU 버스트로 돌아가기까지 일어나는 일련의 작업 CPU 스케줄러 준비 상태에 있는 프로세스들 중 어떠한 프로세스에게 CPU를 할당할지 결정하는 운영체제의 코드 CPU 스케줄러 방식 비선점형 방식 : 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행 보장(처리시간 예측 용이함) 선점형 방식 : OS가 CPU의 사용권을 선점할 수 있는 경..
-
[OS] 프로세스의 생성과 프로세스 간의 협력Computer Science/OS 2023. 1. 12. 18:56
시스템이 부팅 된 후 최초의 프로세스는 운영체제가 직접 생성하지만 그 다음부터는 이미 존재하는 프로세스가 다른 프로세스를 복제 생성하게 됩니다. 이 때 프로세스를 생성한 프로세스를 부모 프로세스라고 하고, 새롭게 생성된 프로세스를 자식 프로세스라고 한다. 프로세스의 세계에선, 자식이 먼저 죽고 이에 대한 처리는 자식을 생성했던 부모 프로세스가 담당하는 방식으로 진행된다. 프로세스 생성(Process Creation) 부모 프로세스가 자식 프로세스 생성 프로세스의 트리(계층 구조) 형성 프로세스는 작업을 수행하기 위해서는 자원을 필요로 함 자원 획득 방법 운영체제로부터 받는다 부모와 공유한다 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execu..
-
[OS] 쓰레드와 멀티쓰레드Computer Science/OS 2023. 1. 5. 14:25
http://www.kocw.net/home/cview.do?lid=29d9a718cff884c3 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw.net Process2 동기식 입출력과 비동기식 입출력, 프로세스 스케줄링 큐의 모습, Thread http://www.kocw.net/home/cview.do?lid=54e1a4abcd59272d 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw...
-
[OS] 운영체제 프로세스, 스케줄러Computer Science/OS 2022. 12. 29. 19:02
http://www.kocw.net/home/cview.do?lid=b31830a2b3cf1e60 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw.net Process 1 프로세스의 개념, 프로세스의 상태(Process State), 프로세스의 개념, 프로세스 상태도, Process Control Block(PCB), 문맥교환(Context Switch), 프로세스를 스케줄링하기 위한 큐, Ready Queue와 다양한 Device Queue, 스케줄러(Scheduler) 프로세스 실행 중인 프로그램 프로세스의 문맥 프로세스가 현재 어떤 상태에서 ..
-
[OS] 시스템 구조와 프로그램 실행Computer Science/OS 2022. 12. 29. 14:24
https://core.ewha.ac.kr/assets/publish/C0101020140314151238067290 반효경 [운영체제] 4. System Structure & Program Execution 2 설명이 없습니다. core.ewha.ac.kr System Structure & Program Execution 2 컴퓨터 시스템 구조, 인터럽트(Interrupt), 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), DMA(Direct Memory Access), 서로 다른 입출력 명령어, 저장장치 계층 구조, 프로그램의 실행(메모리 load), 커널 주소 공간의 내용, 사용자 프로그램이 사용하는 함수, 프로그램의 실행 컴퓨터 시스템의 구조 interrupt가 들어왔는지 체크..
-
[OS] 컴퓨터 시스템 구조Computer Science/OS 2022. 12. 27. 03:35
http://www.kocw.net/home/cview.do?lid=36f314da6dc42576 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw.net System Structure & Program Execution 1 컴퓨터 시스템 구조, Mode bit, Timer, Device Controller, 입출력(I/O)의 수행, 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), 인터럽트(Interrupt) 컴퓨터 시스템 구조 메모리: cpu 작업공간 무한루프를 도는 프로그램 → 계속 CPU만 사용 그래서 timer 라는 하드웨..