OS
-
[OS] Virtual Memory (2/2)CS/Operating System 2022. 1. 25. 12:02
앞선 포스트에서 가상 메모리(Virtual Memory)는 논리적 메모리와 물리적 메모리을 분리해 실제 메모리 크기와 상관 없이 가상의 메모리를 사용하는 것이 장점 이라고 설명했다. 그렇다면 가상 메모리에서 프로세스의 크기가 남은 물리적 메모리의 크기보다 더 클 경우 어떻게 할까? Swapping swapping이란 main memory에 있는 일부 프로세스를 secondary memory(HDD, SSD, Flash 등)으로 내보내고 실행할 프로세스를 secondary memory에서 main memory로 불러오는 작업을 말한다. swap out: secondary memory로 내보내는 과정 swap in: main memory로 불러오는 과정 swap time: swap out time + swa..
-
[OS] Virtual Memory (1/2)CS/Operating System 2022. 1. 23. 09:54
🔍 Backgroud 프로그램을 실행하기 위해서는 프로그램 코드를 디스크에서 메모리로 가져와야 한다. 만약 물리적인 메모리의 크기보다 프로그램의 크기가 더 크다면 이 프로그램은 실행할 수 없을 것이다. 하지만 실제 프로그램을 보면, 많은 경우에 프로그램 전체가 메모리에 올라갈 필요가 없다는 것을 알 수 있다. 이러한 생각으로 메모리에 프로그램의 일부를 로딩해 실행할 수 있는 가상메모리(Virtual Memory) 개념이 등장했다. Virtual Memory(가상 메모리)란 ? 가상 메모리는 논리적 메모리와 물리적 메모리을 분리해 실제 메모리 크기와 상관 없이 가상의 메모리를 사용하는 방법을 말한다. 가상 메모리를 사용함으로써 다음과 같은 이점들을 제공한다. 프로그램은 사용 가능한 물리적 메모리 크기에 제..
-
[OS] Cache LocalityCS/Operating System 2022. 1. 22. 18:24
캐시 지역성(Cache Locality) 캐시 지역성 원리 캐시 메모리는 속도가 빠른 장치와 느린 장치간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리이다. 이러한 역할을 수행하기 위해서는 CPU 가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 한다. 캐시의 성능은 작은 용량의 캐시 메모리에 CPU 가 이후에 참조할, 쓸모 있는 정보가 어느 정도 들어있느냐에 따라 좌우되기 때문이다. 적중률(Hit rate)을 극대화 시키기 위해 데이터 지역성(Locality)의 원리를 사용한다. 지역성의 전제조건으로 프로그램은 모든 코드나 데이터를 균등하게 Access 하지 않는다는 특성을 기본으로 한다. 즉, Locality란 기억 장치 내의 정보를 균일하게 Access하는 것이 아닌 어느 한 순간..
-
[OS] Synchronization과 AsynchronizationCS/Operating System 2021. 9. 20. 20:26
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. Synchronization vs Asychronization Synchronization: 메소드를 실행했을 때 값이 반환되기 전까지 blocking되어 메소드 실행과 동시에 반환 값이 기대되는 경우를 말한다. Asynchronization: 메소드를 실행했을 때 blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task를 위임하고 다음 코드를 수행하기 때문에 반환 값을 바로 반환하지 않는다. 프로세스 동기화 Critical Section (임계영역) 동일한 자원을 동시에 접근하는 작업 (e...
-
[OS] CPU SchedulerCS/Operating System 2021. 9. 20. 19:28
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. CPU 스케줄러 스케줄링 대상은 Ready Queue에 있는 프로세스들이다. FCFS(First Come First Served) 특징 먼저 온 순서대로 처리 비선점형(Non-Preemptive) 스케줄링: 일단 CPU를 잡으면 CPU burst가 완료될 때까지 CPU를 반환하지 않는다. 할당되었던 CPU가 반환될 때만 스케줄링이 이루어진다. 문제점 convoy effect: CPU burst가 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상이 발생한다. SJF(Shortest Job First) 특징 CPU bu..
-
[OS] MultithreadCS/Operating System 2021. 9. 20. 19:02
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. 멀티스레딩 (Multithreading) 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것 멀티스레딩의 장점 자원 공유 (Resource sharing) 멀티프로세스로 구현하는 것에 비해 멀티스레드로 구현할 경우 메모리 공간과 시스템 자원 소모가 줄어든다. → 스레드는 프로세스의 코드, 데이터, 힙 영역을 공유하기 때문 프로세스 간의 통신 (IPC)에 비해 스레드 간의 통신이 훨씬 간단하다. → 데이터, 힙 영역을 이용하여 데이터를 통신..
-
[OS] Process와 ThreadCS/Operating System 2021. 9. 20. 18:37
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. 프로세스 (Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당 받는다. 프로세스의 메모리 영역은 텍스트(코드), 데이터, 스택, 힙 영역으로 나눌 수 있다. 텍스트 (Text): 실행 파일을 구성하는 명령어들이 적재되는 메모리 영역 데이터 (Data): 전역 변수와 정적 변수가 저장되는 영역 스택 (Stack): 함수 호출과 관계되는 지역변수, 매개변수, 리턴 주소 등이 저장된다. 함수 호출 ..