Scatch note
Tag – 운영체제
13 posts tagged with "운영체제" (See all tags)

OS 독자/저자문제와 생산자/소비자 문제 및 해결

2023-04-162 Min Read — In tech

이번 글에서는 앞서 공부한 세마포어를 바탕으로, 대표적으로 알려진 동시성 문제를 다룹니다. 세마포어에 대해서는 이전 글을 참고해주세요. Producer-Consumer Problem Reader-Writer Problem //Dinning Philosopher’s Problem Producer-Consumer 문제 배경지식: Ring Buffer 생산자 소비자 구조에서 자주 사용되는 Ring Buffer구조는 Circular Queue…

운영체제 데드락과 예방,회피,복구

2023-04-162 Min Read — In tech

데드락이란? 할당받을 수 없는 자원을 요청해 더이상 실행할 수 없는 상태 프로세스 A,B는 리스소 X,Y를 가지고있어야 진행이 가능합니다. 하지만 A,B가 각각 Y,X를 점유하고 X,Y를 요청한다면, 영원히 X,Y를 동시에 획득하지 못하는 상황이 발생합니다. DeadLock drawio 운영체제에는 다양한 자원을 복잡한 방법으로 할당받아 사용하기에, 위와 같은 경우라고 해서 무조건 데드락이 발생하지는 않고, E.G 코프만 교수가 아래…

운영체제 세마포어 원리

2023-04-022 Min Read — In tech

앞서 TAS를 통한 Atomic한 락 설정 방법을 공부했습니다. Atomic한 락 설정을 통해 Preemption으로 인한 이상현상 없이 임계구역을 보호하기 위해 운영체제는 몇가지 방법들을 사용합니다. 세마포어 세마포어란, 다익스트라가 제안한 알고리즘으로, Busy Waiting으로 인한 성능저하 문제를 해결합니다. 기본적인 동작방법 세마포어는 세마포어변수 S와 P,V연산으로 이뤄집니다. 세마포어 변수인 S…

운영체제 멀티스레드와 동시성 문제

2023-03-224 Min Read — In tech

Thread와 동작원리 <이미지 출처 https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/korean > Thread는 Process 내에서 분기하는 또 다른 실행 흐름입니다. 주소공간 멀티스레드 환경에서 프로세스의 주소공간은, 스레드의 개수만큼 스택 공간이 필요합니다. 이를 Thread-local, 또는 Thread-stack…

페이지 교체와 정책 (Swap)

2023-03-092 Min Read — In tech

물리메모리를 필요로 하는 프로세스가 N개 있다고 가정합시다. N개의 프로세스는 각각 꽤 큰 크기의 물리메모리를 필요로 해서 프로세스들이 필요한 가상공간의 크기 총 합이 물리메모리의 크기보다 커지면 우리는 N개의 프로그램을 동시에 실행하지 못할 것입니다. Swap Space 이러한 물리메모리의 크기 한계를 극복하기 위해 HDD,SSD 등 보조기억장치를 임시 저장공간인 Swap Space로 사용합니다. 이런 Swap Space…

다양한 페이징 기법 [ Hybrid, Multi Level Paging]

2023-03-082 Min Read — In tech

페이징 기법의 문제점 앞선 글에서 소개한 페이징 기법에서는 페이지의 크기를 4KB로 가정했습니다. 그러나 현대에는 메모리의 크기가 4GB를 넘어 64GB까지도 사용됩니다. 이런 컴퓨터에서 4KB의 페이지를 사용한다면 페이지 개수가 10^6 ~ 10^…

세그멘테이션과 페이징 (+ 비교 )

2023-02-273 Min Read — In tech

불연속 메모리 할당기법 세그멘테이션, 페이징은 대표적인 불연속 메모리 할당기법입니다. 각각 세그먼트, 페이지라는 단위로 프로그램을 나누고 페이지/세그먼트 테이블을 통해 가상/물리 메모리를 매핑, 연속적인 가상 주소공간을 사용할 수 있도록 합니다. 특징 및 연속 할당기법과의 차이 1 여전히 명령어는 가상주소를 기반으로 실행됩니다. Segmentation 프로그램을 의미있는 단위인 Heap, Stack, Code, Data…

연속메모리 할당과 주소 공간

2023-02-202 Min Read — In tech

프로세스에게 메모리를 할당해주는 방식의 발전과정과, CPU가 안전하게 메모리에 접근하기 위해 주소공간을 가상화하는 방법을 설명합니다. 주소공간 1 컴퓨터공학 수업들을 들으며 수없이 봐왔던 주소공간입니다. 이는 프로세스 하나가 실행될때 만들어지는 가상의 주소공간이고, 프로그램 코드 영역에서는…

기본 CPU 스케쥴링 [ FCFS, SJF, SRTF, RR]

2023-02-143 Min Read — In tech

개요 스케쥴링이란, CPU 자원을 계획에 따라 여러 프로세스에게 나누어주는 방법입니다. 여러가지 스케쥴링 항목에 대해 공부하기 전에, 왜 스케쥴러를 사용하는지에 대해 생각하면 더 편하게 이해할 수 있습니다. 앞서 공부한 프로세스의 상태 중, CPU를 할당받기 위해 Ready → Running 상태의 전이를 담당하는것이 스케쥴링입니다. 그래서 기본적으로 Ready Queue…

인터럽트와 제한된 직접 실행

2023-02-143 Min Read — In tech

OSTEP에서 본문에 해당하는 챕터 제목이 “Limited Directed Execution: 제한된 직접 실행 원리” 입니다. 책에서는 인터럽트의 한 종류인 trap에 대해서만 다루지만, 인터럽트에 대해 포괄적으로 알기 위해 관련내용도 정리했습니다. 제한된 직접실행 개요 먼저 Limited가 없는 직접 실행이라는 부분에 대해 알아보자면 , 운영체제가 프로그램의 실행에 관여하지 않고 CPU…

프로세스의 개념과 상태 변화

2023-02-063 Min Read — In tech

프로세스의 개념 프로세스는 프로그램이 실행중인 상태 라고 정의합니다. 프로그램 자체는 디스크에 적재되어있는 상태로, 아무런 동작을 하지 않습니다. 프로그램이 메모리에 적재되고, CPU를 점유해 사용하는 주체를 “프로세스”라고 합니다. 조금 더 구체적으로는 아래와 같이 정의할 수 있습니다. 커널에 등록되고 커널의 관리 하에 있는 작업 → 프로세스 관리 블록(PCB)을 할당받은 프로그램 각종 자원을 요청하고 할당받을 수 있는 개체 CPU…

[Continue,OS] 메모리파트 정리

2020-05-242 Min Read — In tech

주제 : 운영체제 메모리 관리: 물리메모리 할당 방식! 목차 연속 메모리 할당 고정 분할 방식 Fixed Allocation 가변 분할 방식 Variable Allocation 비연속 메모리 할당 세그멘테이션 Segmentation 페이징 Paging ---continue--- 페이징/세그멘테이션 혼합 페이지 요구 Demand Paging…