OS 16

[OS] 페이지 교체

페이지 교체 정의 및 과정 프로그램 실행시 모든 항목이 물리 메모리에 올라오지 않기 때문에, 프로세스의 동작에 필요한 페이지를 요청하는 과정에서 페이지 부재가 발생하게 되면, 원하는 페이지를 보조저장장치에서 가져오게됨 하지만 만약 물리 메모리가 모두 사용중이라면 페이지 교체가 진행되야함 디스크에서 필요한 페이지 위치를 찾음 빈 페이지를 프레임을 찾음 (페이지 교체 알고리즘을 통해 희생될 페이지 찾아서 디스크에 기록후, 관련페이지 테이블 수정) 빈 프레임에 새 페이지를 읽어오고, 프레임 테이블 수정 프로세스 재시작 페이지 교체 알고리즘 FIFO 페이지 교체 : 먼저 물리 메모리에 들어온 페이지 순서대로 페이지 교체 시점에 먼저 나가게 되는 방식 최적 페이지 교체 : 앞으로 가장 오랫동안 사용되지 않을 페이..

OS 2021.12.26

[OS] 가상메모리

가상 메모리 정의 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법 메모리가 실제메모리보다 많아보이게 하는 기술 가상 메모리 배경 실행되는 코드의 전부를 물리 메모리에 존재시켜야 해서 메모리용량 보다 큰 프로그램을 실행시킬 수 없었음, 그리고 여러 프로그램을 동시에 메모리에 올리기에는 용량 문제, 페이지 교체등 성능 이슈가 발생하게 되며 사용하는 코드가 차지하는 메모리들을 확인 할 수 있다는 점에서 불필요하게 전체 프로그램이 메모리에 올라와 있어야 된다는게 아니라는 것을 알 수 있음 가상 메모리의 역할 가상 주소 공간 제공 프로세스간의 페이지 공유 가상 주소 공간 제공 한 프로세스가 메모리에 저장되는 논리적인 모습을 가상메모리에 구현한 공간으로 프로세스가 요구하는 메모리 공간을 ..

OS 2021.12.26

[OS] 캐시지역성

캐시 메모리 속도가 빠른 장치와 느린 장치간의 속도차에 따른 병목 현상을 줄이기 위한 범용메모리 캐시 메모리 역할을 수행하기 위해서는 CPU가 어떤 데이터를 원하는지 예측을 어느정도 할 수 있어야함, 캐시의 성능은 정보가 어느정도 들어있느냐에 따라서 좌우됨 캐시 지역성 캐시 적중율 극대화 시키기 위해서 지역성의 원리를 사용함, 지역성이란 기억장치 내의 정보를 균일하게 접근 하는 것이 아닌 한순간에 특정 부분을 집중적으로 참조하는 특성 시간 지역성 : 최근에 참조된 주소 내용은 곧 다음에 다시 참조된다는 특성 공간 지역성 : 대부분의 실제 프로그램이 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성 캐시 라인 캐시에 데이터를 저장할 때 특정 자료구조를 사용하여 묶음으로 저장하게 되는데 이것을 캐시라인..

OS 2021.12.26

[OS] CPU 스케쥴링

스케쥴링 프로세스가 생성되서 실행될 때 필요한 시스템의 여러자원을 해당 프로세스에게 할당하는 작업을 의미함 프로세스가 생성되서 완료될 때까지 여러 스케쥴링이 실행됨 스케쥴링 기법 종류 비선점 스케쥴링 : CPU에 할당되어 실행되고 있는 프로세스를 우선순위와 상관없이 강제로 뺏지 않고 (뺏을수 없음) 사용하는 기법 선점 스케쥴링 : 하나의 프로세스가 CPU에 할당되어 실행되고 있는데 우선순위가 높은 다른 프로세스가 할당된 CPU를 빼앗아서 사용하는 기법 비선점 스케쥴링 특징 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때 까지 CPU를 사용 프로세스 응답시간 예측하기가 용이하면서 일괄 처리방식에 적합 우선순위가 높은 작업이 우선순위가 낮은 작업보다 더 늦게 처리되는 경우가 발생할 수 있음 대표적..

OS 2021.11.13

[OS] 스케쥴러

프로세스 Queue 종류 프로세스는 수행하면서 상태가 여러번 변하는데에 따라서 서비스 받아야하는 곳이 다름, 프로세스는 일반 적으로 여러개가 한번에 수행되므로 그에 따른 순서가 필요함, 이러한 순서를 대기하는 곳이 Queue이며 내부에는 각 프로세스의 PCB가 저장되어 있음, 이러한 순서를 정해주는것이 스케쥴러임 Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합, 프로그램이 실행되기 위한 메인 메모리의 할당순서를 기다림 Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합, CPU 점유순서를 기다림 Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합, I/O 하기 위한 각 장치를 기다림 스케쥴러 한정적인 메..

OS 2021.11.10

[OS] 메모리 관리 전략

메모리 관리 전략 연속 메모리 할당 페이징 세그멘테이션 세그멘테이션 페이징 혼용 기법 연속 메모리 할당 프로세스를 메모리에 연속적으로 할당하는 기법 할당과 제거를 반복하다보면 Scattered Holes가 생겨나고 이로 인한 외부 단편화가 발생 페이징 메모리 공간이 연속적으로 할당되어야 한다는 제약조건을 없애는 메모리 관리 전략 논리 메모리는 고정크기의 페이지, 물리메모리는 고정크기의 프레임 블록으로 나누어 관리 MMU(Memory Management Unit)의 재배치 레지스터 방식을 활용해 CPU가 마치 프로세스가 연속된 메모리에 할당된 것처럼 인식하도록 함 세그멘테이션 페이징 기법과 반대로 논리 메모리와 물리 메모리를 같은 크기의 블록이 아닌, 서로 다른 크기의 논리적 단위인 세그먼트로 분할 세그멘..

OS 2021.11.08

[OS] Swap

Swap 하드 디스크의 일부를 RAM처럼 사용할 수 있게 만드는 것 시스템의 메모리가 부족한 경우 하드 디스크의 일부 공간을 사용하여 도와주는 것 Swapping RAM이 부족할 때 우선 일부 공간을 하드디스크로 이동하고 메모리가 다시 여유가 생기면 하드디스크에 이동했던 메모리 공간을 다시 이동하는 것 Swapping 사용방식 파티션 방식 : 나누어진 파티션 중 하나를 스와핑 영역으로 사용 (Swap 파티션 영역크기는 RAM 크기 2배 이상 권장) 파일 방식 : 일반적인 파일 시스템에 존재하는 파일을 스와핑 영역으로 사용 Swap 장단점 장점 단점 RAM이 가득 찼을 경우 보조 공간 제공 RAM처럼 빠르지는 않지만 하드보다 빠른 속도로 사용 가능 SWAP파티션은 크기를 유동성 있게 조정할 수 없어서 하드..

OS 2021.11.07

[OS] 외부 단편화 / 내부 단편화

메모리 단편화 RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만, 사용이 불가능한 상태 메모리 단편화 종류로 외부단편화와 내부단편화가 있음 외부 단편화 메모리가 할당 및 해제 작업으로 인해 중간중간 사용하지 않는 메모리가 존재하여 총 메모리로는 할당이 충분한 상태이지만 할당을 할 수 없는 상황 내부 단편화 메모리 할당시 필요한 양보다 더 큰 메모리가 할당되어서 메모리 공간이 낭비되는 현상 해당 단편화 문제를 해결하기 위해 메모리 관리 기법이 존재

OS 2021.11.07

[OS] 동기화 객체의 종류

스레드 동기화 방법 실행 순서의 동기화 : 스레드의 실행 순서를 정의하고, 이 순서에 반드시 따르도록 하는 방법 메모리 접근에 대한 동기화 : 메모리 접근에 있어서 동시 접근을 막는 방법이며, 실행 순서가 중요한 상황이 아니고 한 순간에 하나의 스레드만 접근하도록 함 동기화 기법의 종류 유저 모드 동기화 : 커널의 힘을 빌리지 않는 동기화 기법 커널 모드 동기화 : 커널에서 제공하는 동기화 기능을 활용하는 기법 유저 모드 동기화 성능상 이점이 있으나, 기능상의 제한 크리틱컬 섹션 기반의 동기화, 인터락 함수 기반의 동기화가 있음 커널 모드 동기화 커널 모드로의 변경이 필요하기 때문에 성능 저하로 이어짐, 다양한 기능 활용이 가능함 뮤텍스 기반의 동기화, 세마포어 기반의 동기화, 이벤트 기반의 동기화가 있음

OS 2021.11.07

[OS] 멀티프로세스 대신 멀티쓰레드 사용이유

멀티 프로세스 대신 멀티 스레드를 사용하는 이유 자원의 효율성 증대 처리 비용 감소 및 응답 시간 단축 자원의 효율성 증대 멀티 프로세스로 실행되는 작업을 멀티스레드 실행할 경우, 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리할 수 있음 (프로세스 간의 Context Switching시 단순히 CPU 레지스터 교체 뿐만 아니라 RAM과 CPU 사이의 캐시 메모리에 대한 데이터까지 초기화되므로 오버헤드가 크기 때문) 스레드는 프로세스 내의 메모리를 공유하기 때문에 독립적인 프로세스와 달리 스레드 간 데이터를 주고 받는 것이 간단해지고 시스템 자원 소모가 줄어들게 됨 처리 비용 감소 및 응답 시간 단축 프로세스 간의 통신(IPC)보다 스레드 간의 통신의 비용이 적으므로 작업..

OS 2021.11.06