본문 바로가기

CS 지식/운영체제15

[운영체제] Race Condition(경쟁 상태) ✔️ Race Condition(경쟁 상태) 정의Race Condition(경쟁 상태) 이란?경쟁 상태란 두 개 이상의 쓰레드가 공유자원에 대해 접근하려고 서로 경쟁하는 것이다. 다르게 말하면, 공유 자원에 대해 여러 쓰레드가 동시에 접근할 때, 접근 순서에 따라 결과값에 영향을 줄 수 있는 상태이다.  ✔️ Critical Section(임계 영역) 정의Critical Section(임계 영역) 이란?임계 영역이란 Race Condition이 일어날 수 있는 영역으로, 하나의 쓰레드가 특정 공유 자원을 사용할 때 다른 쓰레드가 접근하지 못 하는 구역이다. 이 영역을 여러 쓰레드가 동시에 접근할 때 잘못된 결과를 만들 수 있다.  ✔️ Race Condition 발생하는 경우 및 해결책1. 커널 작업을 .. 2024. 8. 24.
[운영체제] 데드락(DeadLock) ✔️ 데드락(DeadLock) 정의데드락(DeadLock) 이란?두 개 이상의 프로세스나 스레드가 서로서로 가진 공유 자원을 얻고자 기다리는 경우, 무한히 서로가 서로의 자원을 기다리게 되는 상태를 의미한다. 한정된 자원을 여러 프로세스가 사용하려고 할 때 발생한다.  Thread 1은 공유 자원 L1을 갖고 있고, 공유 자원 L2 를 기다림. Thread 2은 공유 자원 L2을 갖고 있고, 공유 자원 L1 를 기다림. 이런 경우, 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 대기(wait) 상태에 빠짐 = DeadLock 상태✔️ 데드락(DeadLock) 발생 조건4가지 조건이 모두 성립해야 발생 ! ( 하나라도 성립하지 않으면 데드락 문제 해결 가능 )상호 배제(Mutual.. 2024. 8. 22.
[운영 체제] CPU Scheduling ✔️ CPU Scheduling CPU Scheduling은 CPU를 효율적으로 사용하기 위해 프로세스의 스케쥴, 즉 수행 순서를 정하는 과정이다. 운영체제의 CPU 스케줄러는 Ready 상태의 프로세스 중에서 어떤 프로세스에게 CPU를 할당할지 결정합니다.  ✔️ 선점(Preemptive)/ 비선점(Non Preemptive) 스케쥴링선점 (preemtive) : OS가 CPU의 사용권을 선점(강제 회수)할 수 있는 경우, 즉 다른 process 실행을 위해 필요하다면 현재의 process를 중단시킴.• 우선 순위가 높은 프로세스를 빠르게 처리 가능함. • 우선 순위가 낮은 프로세스가 무한정 기다리는 starvation 생길 수 있음비선점(nonpreemtive) : 프로세스 종료 또는 I/O 등의 이.. 2024. 8. 22.
[운영 체제] PCB & Context Switching ✔️ 프로세스 관리 프로세스 관리란 실행중인 프로세스가 여러 개일 때, CPU 스케줄링을 통해 프로세스를 관리하는 것을 의미한다. CPU는 각 프로세스들이 누군지 알아야 관리가 가능한데, 이때 프로세스들의 각자의 특징을 갖고 있는 Process Metadata 라는 정보를 활용한다. 프로세스 메타데이터(Process Metadata) • Process ID• Process State• Process Priority• CPU Registers• Owner• CPU Usage• Memeory Usage 이 메타데이터는 프로세스가 생성되면 PCB(Process Control Block)에 저장된다.  ✔️ PCB(Process Control Block)PCB(Process Control Block)는 프로세스.. 2024. 8. 21.
[운영 체제] System Call(시스템 콜)이란 무엇인가? ✔️ System Call(시스템 콜) 정의System call(시스템 호출)이란? 운영 체제의 커널이 제공하는 서비스에 대해 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.   ➕ 시스템 콜이 필요한 이유사용자 프로세스가 직접 특권 명령을 수행할 수 없으므로 커널(kernel)의 도움을 받기 위해 시스템 콜을 사용한다. 문서는 컴퓨터 저장장치에 저장되어 있고 하드웨어 자원을 관리하는 것은 운영체제이다. 사용자가 어떤 문서를 불러오려고 할 때, 사용자 프로세스는 하드웨어에 저장되어 있는 문서를 불러올 수 없으므로 커널의 도움을 받기 위해 시스템 콜을 호출하게 된다.✔️ 시스템콜 종류1. 프로세스 제어(Process Control)2. 파일 조작 (File Manipulation) 3. .. 2024. 8. 20.
[운영 체제] Interrupt(인터럽트)는 무엇인가 ✔️ 인터럽트란 무엇인가?Interrupt(인터럽트)란?프로그램을 실행하는 도중에 예기치 않은 상황이 발생한 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것 (프로세서 즉, 흔히 CPU에 의해)✔️ 인터럽트의 종류 1️⃣ 하드웨어 인터럽트(hardware interrupt) = 외부 인터럽트 : CPU의 하드웨어(ex-키보드, 마우스 등)에 의해 발생입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생ex) 전원 이상, 기계 착오, 외부 신호, 입출력 등2️⃣ 소프트웨어 인터럽트(software interrupt) = 내부 인터럽트 : CPU에 의해 실행 되고 있는 프로그램에 의해 발생Trap 이라고 부르며, 잘못된 명령이나.. 2024. 8. 20.