본문 바로가기

Computer Science/Operating System14

[Operating System] Memory Management (2) (메모리 관리) Hierarchical Paging계층적 페이징은 페이지 테이블을 페이징 하는 방식이다.32비트 주소공간의 크기 : 2^32 bytes페이지 사이즈 : 2^12 bytes페이지의 개수(페이지 테이블 엔트리의 개수) : 2^20 개 이 때 각 페이지 테이블 엔트리는 2^2bytes 주소 이므로,페이지 테이블의 크기 : 2^22 bytes이 페이지 테이블 또한 페이징 기법으로 메모리에 저장해야한다. 페이지 테이블의 크기 : 2^22 bytes페이지 사이즈 : 2^12 bytes페이지 테이블의 페이지의 개수(외부 페이지 테이블 엔트리의 개수) : 2^10 개   따라서 이 32비트 논리 주소에서 p1은 외부 페이지 테이블 엔트리 번호, p2는 내부 페이지 테이블 엔트리의 번호, d는 그 페이지 내부에서의 오프.. 2024. 8. 16.
[Operating System] Memory Management (1) (메모리 관리) Binding of Instructions and Data to Memory- Compile time Binding : 프로세스가 메모리 내에 들어갈 위치를 컴파일 타임에 미리 알 수 있다면 컴파일러는 절대 주소를 포함하는 절대 코드를 생성할 수 있다. 그러나 만일 이 위치가 변경되어야 한다면 이 코드는 다시 컴파일 되어야 한다. - Load time Binding : 프로세스가 메모리 내 어디로 올라오게 될지를 컴파일 시점에 알지 못하면 컴파일러는 일단 이진 코드를 상대 주소를 포함하는 재배치 가능 코드(Relocatable code)로 만들어야 한다. 이렇게 만들어진 재배치 가능 코드는 시작 주소가 변경되면 아무 때나 사용자 코드를 다시 적재하기만 하면 된다. - Execution time Bindi.. 2024. 8. 12.
[Operating System] Deadlocks (교착 상태) Deadlock  두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태로 무한히 다음 자원을 기다리게 되는 상태를 말한다. 데드락의 발생 조건다음 4가지가 모두 성립해야 데드락이 발생한다. 1. Mutual Exclusion : 자원은 한번에 한 프로세스만 사용할 수 있다.2. No Preemption : 다른 프로세스에 할당된 자원은 사용이 끝날 때 까지 강제로 빼앗을 수 없다.3. Hold and Wait : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 한다.4. Circular Wait : 프로세스의 집합에서 순환 형태로 자원을 대기하고 있어야 한다. Resource-All.. 2024. 8. 7.
[Operating System] Process Synchronization (프로세스 동기화) Race condition  공유된 데이터에 대한 경쟁적인 접근은 데이터의 불일치를 초래할 수 있다. 여러 개의 프로세스들이 동일한 데이터에 접근해서 데이터를 변경하려는 상황을 Race condition이라고 한다. Race condition으로 인해 최종적으로 데이터의 값은 잘못된 값이 될 가능성이 있다. 이러한 Race condition을 방지하기 위해 경쟁하는 프로세스들은 동기화 되어야 한다.  이러한 상황에는 P1이 연산을 먼저 수행하고, P2가 그 다음 연산을 수행한다면 X가 처음과 동일하게 2로 유지될 것이라고 생각할 수 있지만, instruction이 interleaving된다면 P1의 연산 도중 P2가 연산을 동시에 수행하여 결과를 P1보다 늦게 X에 저장한다면 X의 최종 값은 1이 될 것.. 2024. 7. 29.
[Operating System] CPU Scheduling (CPU 스케줄링) CPU SchedulingCPU 자원을 현재 메인메모리에 올라온 프로세스들 중에 어느 것에 줄 것인지 결정하는 것. Histogram of CPU-burst Times- I/O bound job  CPU를 길게 쓰지 않지만 그 빈도가 매우 높다. ex) 키보드 타이핑 - CPU bound job  CPU를 길게 쓰고 그 빈도가 낮다. ex) 오래걸리는 계산과 같은 작업 CPU SchedulerCPU 스케줄링은 다음과 같은 상황에 발생한다.1. 프로세스의 상태가 Running -> Waiting로 바뀔 때 ex) I/O 요청2. 프로세스의 상태가 Running -> Ready로 바뀔 때 ex) Timerunout3. 프로세스의 상태가 Waiting -> Ready로 바뀔 때 ex) I/O 종료 인터럽트4... 2024. 7. 17.
[Operating System] Processes and Threads (프로세스와 스레드) Process프로세스란 실행중인 프로그램으로, 정확히 말하자면 프로그램이 실행되는 데 필요한 모든 것들을 저장하는 자료구조라고 할 수 있다. Process Address Space   프로세스는 주소공간에서 stack, heap, data, text 으로 4가지 section으로 나타난다.Stack : Function Call(parameters, return address, local variables, etc..)과 Context Switch(register value including PC, Stack Pointer)을 위해 사용 되는 데이터를 관리하는 영역Heap : 동적 메모리 할당으로 저장한 데이터를 관리하는 영역Data : Static, Global Variable을 관리하는 영역Text :.. 2024. 7. 12.