페이징(Paging) 페이지(Page) 단위의 논리-물리 주소 관리기법대부분의 운영체제에서 활용되는 메모리 관리기법필요조건- 논리 주소 공간과 물리 주소 공간을 분리하여 주소의 동적 재배치 허용- 전용 하드웨어(MMU)로 논리주소와 물리주소 변환이 필요 페이징의 주소표현- 페이지 번호(p)와 페이지 오프셋(d)- 논리 주소 공간의 크기가 2^m, 페이지의 크기가 2^n일 때, 상위(m-n)비트는 페이지 번호, 하위 n비트는 오프셋 페이징의 특징- 연속된 논리 주소 공간을 독립적으로 사용하고 주소변환은 하드웨어나 운영체제가 처리하기 때문에 사용자/프로세스의 편의성- 프레임 단위의 비연속적 메모리 할당이기 때문에 동적 메모리 할당에 따른 문제가 없음. (외부 단편화 없음)- 다만 페이지라는 4킬로바이트의 비..
메모리란? - 주소로 접근 가능한 워드 혹은 바이트의 배열 - 메모리의 역할o CPU가 직접 접근하는 유일한 저장장치o 메모리 시스템은 데이터가 아닌 주소(메모리의 위치)로만 관리- 메모리는 프로세스에게 주소공간을 할당함 : 주소 바인딩(Address binding)o 일반적으로 프로세스에게 할당될 실제 메모리 영역은 실행 전에는 고정되지 않음.o 주소 바인딩은 주소 공간들 사이의 변환/매핑 개념 o 주소 바인딩 시점1. 컴파일 시간 (Compile time)소스를 컴파일 하는 중에 적제될 메모리 주소를 생성위치가 변경되면 다시 컴파일 해야하기 때문에 이 시점에 주소 바인딩을 하는 경우는 아주 간단한 프로그램 뿐2. 적재 시간 (Load time)컴파일러는 재배치 가능(relocatable) 코드를 생성..
교착상태(Deadlock)- 두개 이상의 프로세스가 각각 어떤 자원을 소유하고 있으면서 다른 프로세스가 소유한 자원을 추가로 요청하여 기다리고 있는 상황 - 필요조건 1. 상호배재 (Mutual Exclusion) : 한번에 오직 한 프로세스 만이 자원을 활용할 수 있다. 2. 점유와 대기 (Hold and wait) : 프로세스가 적어도 하나의 자원을 점유하면서 다른 프로세스가 점유하고 있는 자원을 추가로 얻기위해 대기한다. 3. 비선점 (No preemption) : 점유된 자원은 강제로 해체될 수 없고, 점유하고 있는 프로세스가 작업을 마치고 자원을 자발적으로 해체한다. 4. 순환대기 (Circular wait) : 대기하고 있는 프로세스 집합 {P0, P1, ... , Pn} 에서 P0은 P1이 ..
동기화 (Synchronization) - 동시에 실행되는 프로세서들의 실행을 제어하여 원하는 실행 순서에 따라서 실행 시점을 맞추는 것- 공유되는 데이터의 일관성 보장- 임계 영역(공유데이터를 동시에 조작할때 실행의 특정 순서가 달라질 수 도 있는 영역) 문제를 해결하는 것 락 (Lock)- 한 프로세스가 임계 영역에 해당하는 코드를 실행하고 있을 때 다른 프로세스가 임계영역으로 진입하지 못하도록 하는 것- 임계영역으로의 진입 가능성 확인과 동시에 진입 거부를 원자적(프로그램이 중간에 끼어들 수 없음)으로 한번에 처리 - 락킹(locking)을 원자적으로 처리하는 하드웨어 명령어o TestAndSet()한 워드의 내용을 확인하고 수정하는 연산을 원자적으로 처리o Swap()두 워드의 내용을 서로 교환하..
스레드(Thread) - 실과 같이 흘러가는 프로그램의 흐름- CPU 이용의 기본 단위로서, 독립적으로 실행되는 코드 집합- Light Weight Process(경량의 프로세스) 라고 부르기도 함- 하나의 프로세스 내에 반드시 하나 이상의 스레드 존재o 하나의 프로그램을 여러개의 스레드로 동시에 혹은 나누어서 병렬적으로 수행- 각 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 스택을 독립적으로 소유- 같은 프로세스 내의 여러 스레드는 코드(텍스트 영역), 데이터 영역, 열린 파일 등의 시스템 자원을 공유o 독립적인 주소 공간(메모리)은 없으며 다른 스레드와 공유 멀티 스레드(Multi Thread)- 운영체제의 여러작업을 수행하기 위해 프로세스를 늘리는 것 보다, 스레드를 늘리는 것이..