본문 바로가기

CS 지식23

[운영체제] Paging(페이징) 과 Segmentation(세그먼테이션) ✔️ 페이징과 세그먼테이션이 필요한 이유어떠한 프로그램을 실행할 때, 프로그램들을 메모리 공간에 연속적으로 할당하게 된다. 만약 여러 프로그램들이 메모리에 할당되고 해제되는 것이 반복되다 보면, 메모리 공간이 조각조각 나뉘게 되어 사용 가능한 메모리 공간이 충분함에도 불구하고 프로그램에 메모리를 할당하는 것이 불가능한 상태가 발생한다.  이러한 현상을 Memory Fragmentation(메모리 단편화) 라고 한다.  고정 분할 기법 : 메인 메모리가 고정된 파티션으로 분할 → 내부 단편화 발생 동적 분할 기법 : 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재 →외부 단편화 발생 내부 단편화 ( Internal Fragmentation ) → 오른쪽 그림에 해당: 메모리를 할당할 때 프로세스.. 2024. 8. 25.
[운영체제] Semaphore(세마포어) & Mutex(뮤텍스) 이전 포스팅에서 Race Condition에 대해서 설명하면서, 공유 자원을 동시에 쓰지 않기 위해 한 번에 하나의 프로세스만 접근하도록 한다는 해결책을 언급하였다.  [운영체제] Race Condition(경쟁 상태)✔️ Race Condition(경쟁 상태) 정의Race Condition(경쟁 상태) 이란?경쟁 상태란 두 개 이상의 쓰레드가 공유자원에 대해 접근하려고 서로 경쟁하는 것이다. 다르게 말하면, 공유 자원에 대해 여러 쓰cse-gr.tistory.com이번 포스팅에서는 그 해결책을 구체적으로 알아보자 ! 공유된 자원에 여러 프로세스가 동시에 접근하면, Race Condition 이라는 문제가 발생하고이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근 할 수 있도록 1) Semaph.. 2024. 8. 24.
[운영체제] 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.