728x90 반응형 SMALL Computer Science/Operating System Computer Science/Operating System 2022. 1. 23. [Operating System] Paging Paging 페이징은 외부 단편화에서 고안된 개념이다. 구체적으로 보면 더 근본적인 문제점을 해결한 방법이다. 외부 단편화가 발생하는 이유는 각 프로세스의 크기가 다르며 이로인해 생기는 hole도 제각각이기 때문이다. 페이징은 프로세스의 크기를 페이지를 통해 같은 크기로 만들어서 메모리에 배치하는 개념이다. 왼쪽은 프로세스를 여러 개의 페이지로 나눈 모습이다. 그리고 이를 오른쪽에 있는 메모리에 배치한다. 모든 페이지의 크기는 같기 때문에 절대 외부 단편화가 일어나지 않는다. 즉 페이지란 프로세스를 일정한 크기의 페이지로 잘라서 메모리에 적재하는 방식이다. Internal Fragmentation 내부 단편화 안타깝게도 페이징에서도 단편화가 일어난다. 메모리의 크기가 10이고 페이지 하나의 크기가 2라면.. Computer Science/Operating System 2022. 1. 23. [Operating System] Fit Fit fit의 뜻으로는 "모양과 크기가 맞다", "어느 장소에 들어가기에 맞다" 등이 있다. OS에서 말하는 Fit이란 메모리에 프로세스를 배치할 때 어떤 공간에 배치하는게 가장 알맞을지를 말하는 것이다. 다음과 같은 메모리와 프로세스가 있다고 가정해보자. 프로세스를 어디에 Fit해야 할까? 추가로 아직 프로세스가 배치되지 않고 남은 메모리 공간을 hole이라고 한다. First Fit 최초적합 최초적합은 가장 만난 적합 가능한 메모리 공간에 바로 배치하는 것을 말한다. 남은 메모리를 순차적으로 검사하면서 배치가 가능하다면 바로 배치한다. Best Fit 최적적합 최적적합은 새로운 프로세스를 배치했을 때 hole을 최소화하는 것을 목표한다. 모든 hole에 프로세스를 비교해보면서 새로 발생하는 hole.. Computer Science/Operating System 2022. 1. 23. [Operating System] External Fragmentation 외부단편화 External Fragmentation 외부단편화 외부단편화란 메모리를 관리할 때 연속적 할당을 사용하면서 발생하는 문제점이다. 연속적 할당은 메모리를 연속적으로 배치한다는 점에서 구현하기 쉬워보이지만 반대로 말하면 메모리를 연속적으로 배치할 공간이 없으면 배치할 수 없다는 단점이 있다. 여기 세 개의 프로세스가 실행 중인 메모리가 있다. 세 개의 프로세스는 메모리를 적절히 나눠 사용하고 있으며 가장 이상적인 상태라고 볼 수 있다. 프로세스2와 프로세스3이 실행을 마치고 메모리에서 삭제되었다. 그리고 프로세스4와 프로세스5가 메모리에 적절하게 들어갔다. 아래 애매하게 남는 메모리때문에 이상적인 상태라고 볼 수는 없지만 메모리를 효율적으로 잘 사용하고 있다. 프로세스5가 실행을 마치고 메모리에서 삭제되었.. Computer Science/Operating System 2022. 1. 23. [Operating System] Contiguous allocation 연속메모리 할당 Contiguous allocation 연속메모리 할당이란 가상주소를 물리주소로 변환하는 방법 중 하나이다. 가상주소와 물리주소의 시작점은 다를지라도 데이터를 이루는 주소들의 상대 위치는 같기 때문에 물리주소를 가상주소의 순서와 같도록 배치하는 기법이다. 즉 가상주소와 물리주소의 시작점만 다를뿐 데이터의 offset은 같도록 매핑하는 것이 Contiguous allocation이다. MMU의 memory protection contiguous allocation을 사용하면 물리메모리의 크기를 넘어가는 경우가 발생한다. 예를 들어 물리메모리의 크기가 1000이고 가상주소의 offset이 500일 때 물리주소의 시작점이 700이라면 물리주소에서 offset은 1200이 된다. 하지만 물리메모리의 크기는 10.. Computer Science/Operating System 2022. 1. 23. [Operating System] 가상메모리와 물리메모리 물리메모리 실제로 존재하는 메모리 그 자체이다. 우리가 RAM이라고 부르는 메인메모리나 HDD와 같은 것들이 물리메모리이며 이러한 메모리에 데이터가 실제로 위치하는 곳이 물리주소(physical address)이다. 가상메모리 메모리계층이라고 부르는 캐시-메인메모리-하드디스크와 같은 구조는 데이터를 더 빠르게 주고 받기 위해 사용되는 방법이다. 캐시로 갈수록 더 빠르지만 크기가 작다는 한계가 있다. 이러한 한계를 극복하기 위해 만들어진 개념이 가상메모리(virtual memory)이다. 가상메모리를 통해 CPU는 물리메모리보다 더 큰 메모리를 가진 것처럼 메모리를 사용할 수 있다. 정확하게 말하면 OS가 그런 착각을 일으킨다. OS는 CPU에게 가상주소를 할당하고 CPU는 가상주소를 통해 명령어를 수행한.. Computer Science/Operating System 2021. 7. 9. [Operating System] 11. 세마포어와 뮤텍스 0. 세마포어와 뮤텍스 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야한다. 이를 위해 나온 것이 바로 세마포어이다. 세마포어 : 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 임계 구역 : 여러 프로세스가 데이터를 공유하며 수행될 때 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분 공유 데이터를 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기 때문에 한 프로세스가 임계 구역을 수행할 때는 다른 프로세스가 접근하지 못하도록 해야 한다. 1. 세마포어 P,V 연산 P : 임계 구역 들어가기 전에 수행. 프로세스 진입 여부를 자원의 개수(S)를 통해 결정 V.. Computer Science/Operating System 2021. 7. 9. [Operating System] 10. 경쟁 상태 Race Condition 0. 경쟁 상태 경쟁 상태란 공유 자원에 대해 여러 프로세스가 동시에 접근할 때 결과값에 영향을 줄 수 있는 상태를 말한다. 동시 접근 시 자료의 일관성을 해치는 결과가 나타난다. 1. Race Condition이 발생하는 경우 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 프로세스가 시스템콜을 하여 커널 모드로 진입하여 작업을 수행하는 도중 문맥 교환이 발생할 때 문제점 : 프로세스1이 커널모드에서 데이터를 조작하는 도중 시간이 초과되어 CPU 제어권이 프로세스2로 넘어가 같은 데이터를 .. Computer Science/Operating System 2021. 7. 9. [Operating System] 9. 데드락 Deadlock 0. 데드락 데드락이란 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태를 말한다. 교착 상태라고도 부른다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 1. 데드락이 일어나는 경우 프로세스1과 2가 자원 1,2를 모두 얻어야 한다고 가정해보자. t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원 2를 얻음 t2 : 프로세스1은 자원2를 기다림/ 프로세스2는 자원1을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait에 빠지게 된다. 이것이 바로 DeadLock이다. 주로 발생하는 경우 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 한 프로세스가 자원을 요청했을 때 동시에 그 자원을 사용할 수 없는 상.. 이전 1 2 다음 728x90 반응형 SMALL