본문 바로가기

CS/운영체제4

가상메모리와 페이지 교체 알고리즘 가상 메모리(Virtual Memory) 개념 물리 메모리의 한계(크기 등)을 극복하기 위해 사용한다. 핵심은 프로세스 or 프로그램 전체를 메모리에 올리는 것이 아니라, 필요한 부분만 메모리에 적재하는 것이다. 적재 여부는 페이지 테이블에 표시된다. 실행될 가능성이 낮은 코드, 행렬 리스트와 같이 필요한 크기 이상으로 선언된 변수 등은 굳이 적재시키지 않는다. 메모리가 꽉 차면 무슨 기준으로 페이지를 쫓아내야 하는가 => 참조 지역성 참조 지역성(Locality of reference) 동일한 값 또는 해당 값에 관계된 스토리지 위치가 자주 액세스 되는 특성을 말한다. 가상 메모리 방식이 효과적임을 뒷받침하는 원리이다. 시간, 공간, 순차 지역성이 있다. 1. 공간 지역성: 특정 클러스터의 기억 장소들.. 2022. 6. 13.
데드락(Dead-lock) 데드락 둘 이상의 프로세스가 자원을 획득하기 위해 기다리는데, 이 lock을 잡고 있는 프로세스도 똑같이 다른 lock을 기다리면서 서로 블럭 상태에 놓이는 것을 말한다. 데드락은 다수의 프로세스가 같은 lock을 동시에 다른 명령에 의해 획득하려 할 때 발생할 수 있다. 데드락 조건 1. 상호배제: 한 자원에 대한 여러 프로세스의 동시 접근이 불가능해야 한다. 2. 점유와 대기: 자원을 가지고 있는 상태에서 다른 프로세스가 사용하고 있는 자원의 반납을 기다려야 한다. 3. 비선점: 다른 프로세스의 자원을 강제로 가져올 수 없다. 4. 환형대기: 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 갖고 있어야 한다. 데드락 해결 방법 1. 예방: 네 가지 조건 중 하나만을 해결한다. 2. 회피: 발.. 2021. 10. 4.
[동기, 비동기] X [블로킹, 논블로킹] 동기(Synchronous) 개념 두 개 이상의 프로세스가 실행될 때 시스템 콜의 완료를 기다리는 것을 의미한다.예를 들어 A코드와 B코드가 있을 때, A 코드가 모두 진행될 때까지 B 코드가 대기하는 것이다. 특징 데이터를 주고 받는 순서가 중요할 때 사용 한 작업에 대한 시간이 길어질 경우, 전체 응답이 지연될 수 있음 비동기(Asynchronous) 개념 두 개 이상의 프로세스가 실행될 때 시스템 콜의 완료를 기다리지 않는 것을 의미한다.예를 들어 A코드와 B코드가 있을 때, A 코드가 모두 진행될 때까지 기다리지 않고 B 코드가 실행되는 것이다. 특징 요청 순서에 상관없이 동시에 다수의 작업을 처리 가능 작업이 끝날 때 이벤트를 감지하고 결과를 받아서 추가 작업을 해주는 경우도 있기 때문에, 동기.. 2021. 10. 4.
프로세스와 스레드 프로그램 어떤 작업을 위해 실행할 수 있는 파일이다. 프로세스 개념 컴퓨터에서 연속적으로 실행되고 있는 프로그램으로, 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 모두 프로세스라고 부른다. 함수의 매개변수, 복귀 주소, 로컬 변수 등 임시 자료를 갖는 프로세스 스택과 전역 변수들을 저장하는 데이터 섹션을 포함한다. 또한, 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 구조 프로세스는 메인 스레드를 포함한 최소 1개의 스레드를 소유하고 있다. 프로세스는 자신만의 고유 공간과 자원을 할당받아서 사용하고 다른 프로세스의 변수나 자료구조에 접근할 수 없으나, 스레드는 다른 스레드와 공간 및 자원을 공유한다. Co.. 2021. 9. 24.