Computer Science59 [OS] 메모리란? (메모리 주소 종류, 주소 바인딩, MMU의 기능과 역할, 메모리 할당 방식) 목차 메모리란? 메모리 주소 종류 물리적 주소 논리적 주소 논리적 주소를 사용하는 이유 메모리 주소 바인딩 컴파일 시점 주소 바인딩 로드 시점 주소 바인딩 런타임 시점 주소 바인딩 MMU의 기능과 역할 (+ MMU가 잘못된 메모리 주소를 참조하려고 한다면?) 메모리 할당 방식 연속적 할당 비연속적 할당 1. 메모리란? CPU에 의해 작업이 처리되기 위해서는 프로그램이 CPU가 접근할 수 있는 위치에 존재해야 한다. 프로그램을 실행하기 위해서는 디스크에 저장되어 있던 프로그램을 메모리에 적재해야 한다는 말을 들어본 적이 있을 것이다. 이것은 쉽게 설명해 공부를 할 때 책상에서 책을 펼칠 수 있는 공간으로 비유할 수 있으며, 책상의 공간이 한정되어 있기 때문에 나중에 공부할 책은 책장에 꽂아두는 상태로 비유.. 2024. 2. 2. [OS] 교착 상태와 기아 상태란? (데드락 발생 조건과 해결 방법, 기아상태 해결 방법, 현대 컴퓨터는 데드락을 어떻게 처리할까?) 목차 교착 상태이란? 교착 상태 발생 조건 교착 상태 해결 방법 현대 컴퓨터는 교착 상태를 어떻게 처리할까? 기아 상태란? 기아 상태 해결 방법 1. 교착 상태(데드락, Deadlock)이란? 공유 자원에 대한 동기화 문제를 해결하기 위해 성립해야 하는 세 가지 조건이 있다. 공유 자원을 사용하고 있는 프로세스가 존재한다면 다른 프로세스는 임계영역에 진입할 수 없는 상호 배제, 공유 자원을 사용하는 프로세스가 없다면 임계 영역에 진입할 수 있는 진행, 무한 대기를 발생시키지 않게 하기 위해 임계 영역 진입 횟수에 제한을 두는 한정 대기를 충족해야 한다. 하지만 위의 조건을 충족해 동기화 문제를 해결했을 때 발생하는 문제점이 있는데, 그것이 교착 상태이다. 교착 상태는 자원을 점유하고 있는 2개 이상의 프.. 2024. 1. 30. [OS] CPU 스케줄링이란? (CPU 스케줄링이 필요한 상황, CPU 성능 평가 기준, 스케줄러, CPU 스케줄링 알고리즘) 목차 CPU 스케줄링이란? CPU 스케줄링이 필요한 상황 CPU 스케줄링 성능 기준 CPU 스케줄러 종류 장기 스케줄러 중기 스케줄러 단기 스케줄러 CPU 스케줄링 알고리즘 분류 : 선점형 비선점형 선점형 비선점형 CPU 스케줄링 알고리즘 종류 (1) FCFS (First Come, First Served) (2) SJF (Shortest Job First) (3) SRF/SRTF (Shortest Remaining First) (4) Priority (5) RR (Round Robin) (6) MLQ (Multi Level Queue) (7) MLFQ (Multi Level Feedback Queue) 1. CPU 스케줄링이란? 운영체제는 멀티 스레드를 제공함으로써, 우리가 컴퓨터를 사용할 때 동시에 .. 2024. 1. 22. [OS] Race Condition과 동기화란? (Race Condition 발생 상황, 임계영역, 뮤텍스, 세마포어, 모니터) 목차 Race Condition과 동기화란? Race Condition이 발생할 수 있는 상황 임계영역 (Critical Section) Race Condition 해결 방법 (1) 뮤텍스 (Mutex) (2) 세마포어 (Semaphore) (3) 모니터 (Monitor) 뮤텍스, 세마포어, 모니터 비교와 결론 1. 경쟁 상태(Race Condition)와 동기화(Synchronized)란? 여러 개의 프로세스나 스레드가 하나의 공유 자원에 접근할 때, 접근 순서에 따라 실행 결과가 달라지는 상황을 발생할 수 있다. 결국 공유된 자원의 일관성을 보장할 수 없는 것을 의미하며, 이를 경쟁 상태라고 말한다. 경쟁 상태를 막기 위해 프로세스나 스레드가 공유하는 자원들의 일관성을 보장하는 것이 동기화이다. 따라.. 2024. 1. 20. [OS] 스레드와 동기화 문제란? (스레드 특징과 장단점, 동기화 문제, 멀티프로세스보다 멀티스레드를 사용하는 이유) 목차 스레드란? 스레드 특징과 장단점 동기화 문제란? 스레드 구성 : TCB (Thread Control Block) 프로세스와 스레드 비교 멀티 프로세스와 멀티 스레드 멀티 프로세스보다 멀티 스레드를 사용하는 이유 1. 스레드란? 스레드를 설명하기 전 프로그램과 프로세스의 차이를 설명하고, 프로세스에서 더 작은 작업의 단위인 스레드를 설명해보려 한다. 프로그램은 컴퓨터 디스크에 저장되어 있는 정적 프로그램이다. 프로그램을 실행시키고 싶다면 CPU에게 메모리를 할당받는데, 이것을 프로세스라고 부른다. 따라서 프로세스를 실행 중인 프로그램, 혹은 메모리에 올라간 프로그램으로도 부를 수 있는 것이다. 프로그램은 명령어들의 집합으로 구성되어 실행되는데, 스레드는 프로세스에서 실행 중인 명령어의 단위이다. 따라.. 2024. 1. 17. [OS] 프로세스 간의 통신, IPC란? (프로세스 간 통신이 필요한 이유, IPC 기법과 특징) 목차 IPC 개념 프로세스 간의 통신이 필요한 이유 IPC 방식 IPC 종류 : Shared Memory IPC 종류 : Memory Passing IPC 종류 : Socket 정리 1. IPC란? 안정성을 위해 운영체제는 본인 프로세스에 할당된 메모리만 접근할 수 있도록 제한한다. 당연하게도 만약 다른 프로세스의 code 및 data 영역에 접근해 실행하거나 수정할 수 있다면, 어떻게 될까? 이는 운영체제 권한의 의미가 사라지고 매우 위험하다. 하지만 프로세스 간의 자원과 데이터가 공유해야 하는 상황이 발생할 수 있다. 독립적인 공간을 갖는 프로세스의 데이터를 공유하기 위해 필요한 별도의 통신 메커니즘이 IPC(InterProcess Communication)인 것이다. 2. 프로세스 간의 통신이 필요.. 2024. 1. 17. 이전 1 ··· 3 4 5 6 7 8 9 10 다음