본문 바로가기

OS(운영체제)26

동기화 (Synchronization) - (1) 동기화란 여러 프로세스가 공유하는 자원의 일관성(Consistency)을 유지하는 것이다. 1. 경쟁조건 (Race Condition) (1) 경쟁 조건 여러 프로세스들이 동일한 데이터에 동시에 접근해서 조작할 수 있다. 이 경우 실행 결과 값은 접근과 갱신이 일어나는 순서에 따라 달라질 수 있다. (2) Example counter 변수 값이 현재 5이고, 생산자와 소비자가 동시에 "counter++"와 "counter--" 명령을 수행한다고 하자. 이 두 명령의 실행 순서에 따라, counter 변수 값을 올바른 값인 5가 될 수 있으나, 원치 않게 4나 6이 될 수 있다. counter++ 명령어 register1 = counter register1 = register1 + 1 counter = r.. 2021. 12. 9.
쓰레드 (Thread) * 들어가기 전에 스레드가 대중화되기 전에는 프로세스는 별도의 프로세스를 생성하여 같이 일을 처리하였다. 프로세스 생성 작업은 매우 많은 시간을 소비하고 많은 자원을 필요로 한다. 새 프로세스가 해야 할 일이 기존 프로세스가 하는 일과 동일하다면 왜 이 많은 오버헤드를 감수해야 하는가? 프로세스 안에 여러 스레드를 만들어 나가는 것이 더 효율적이다. 1. 쓰레드 (Thread) 프로세스(process) 내에서 실제로 작업을 수행하는 주체, CPU 이용의 기본 단위 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 그리고 스택으로 구성된다. (1) 장점 응답성 (Responsiveness) 응용 프로그램의 일부분이 봉쇄되거나, 응용 프로그램이 긴 작업을 수행하더라도 프로그램의 수행이 계속되는.. 2021. 12. 9.
프레임 할당 (Allocation of Frames) * 들어가기 전에 컴퓨터 시스템의 성능 향상을 위해서는 동시에 동작하는 여러 개의 프로세스에 제한된 가용 메모리를 효과적으로 할당할 수 있는 방법을 고려해야 한다. 각 프로세스에게 할당되는 메모리 프레임 수를 정해야 한다. 최소로 할당해야 할 프레임 수 프로세스에 할당되는 프레임 수가 줄어들면 Page fault 발생 확률이 늘어나 성능이 떨어진다. 명령어 실행이 끝나기 전에 Page fault가 발생하면 그 명령어를 재실행해야 한다. 프로세서의 명령어 집합 구조 (instruction set architecture)에 의해 결정된다. 즉, 아키텍처에 의해 정의된다. 최대로 할당해야 할 프레임 물리 메모리에 의해 결정된다. 1. 할당 알고리즘 (Allocation Algorithm) (1) 균등 할당 (.. 2021. 12. 9.
페이지 교체 (Page Replacement) * 페이지 교체의 필요성 메모리 과할당(over-allocating) 발생 시 메모리 프레임이 부족하므로 페이지 교체가 필요하다. 페이지 교체는 요구 페이징의 기본 페이지 교체를 이용해서 매우 작은 물리 메모리로도 프로그래머에게 광대한 가상 메모리를 제공 1. 페이지 교체 (Page Replacement) (1) 페이지 교체 과정 보조저장장치에서 필요한 페이지의 위치를 알아낸다. 빈 페이지 프레임을 찾는다. 비어 있는 프레임이 있다면 그것을 사용한다. 비어 있는 프레임이 없다면 희생될(victim) 프레임을 선정하기 위하여 페이지 교체 알고리즘을 가동시킨다. 희생될 페이지를 보조저장장치에 기록하고, 관련 테이블을 수정한다. 빼앗은 프레임에 새 페이지를 읽어오고 테이블을 수정한다. 페이지 폴트가 발생한 지.. 2021. 12. 9.
가상메모리 (Virtual memory) * 들어가기 전에 메모리의 여러 관리 전략은 모두 다중 프로그래밍을 실현하기 위해 메모리에 많은 프로세스를 동시에 유지하는 것 지금까지는 접근 방식은 프로세스 전체가 실행되기 전에 메모리로 올라와야 한다는 것을 전제 가상 메모리 라는 것은 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법 1. 가상메모리 (Vitual Memory) 실제 메모리와는 다르게 메모리를 추상화하여 사용자에게 더 큰 메모리로 보이게 한다. 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법 실제의 물리 메모리 개념과 개발자의 논리 메모리 개념을 분리한 것이다. 작은 메모리를 가지고도 얼마든지 큰 가상 주소 공간을 프로그래머에게 제공할 수 있다. (1) 가상메모리 이점 프로그램은 물.. 2021. 12. 9.
페이징 (Paging) - (2) 1. 페이지 테이블의 구조 (Structure of the Page Table) 많은 현대 컴퓨터는 매우 큰 주소 공간 (32 bits, or 64 bits)를 가진다. 이러한 환경에서 페이지 테이블도 상당히 커진다. Example 32bit 논리 주소 공간, page size : 4KB 페이지 테이블은 (2^32/2^12) 개의 entry를 가질 것이다. 각 entry는 4Byte로 구성되기 때문에 2^22 = 4MB의 공간이 필요하다. 페이지 테이블의 크기가 커짐에 따라 메인 메모리에서 연속적으로 할당하기를 어렵다. (1) 계층적 페이징 (Hierarchical Paging) 2단계 페이징 기법(two-level paging scheme) 페이지 테이블을 다시 페이징한다. 이 방식은 주소 변환이 바깥.. 2021. 12. 9.
반응형