블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%80-%ED%85%8C%EC%9D%B4%EB%B8%94-%EA%B5%AC%EC%A1%B0/ [운영체제] 페이지 테이블 구조 (Hierarchical Page Table, 2-level Page Table, Hashed Page Table, Inverted Page Table)페이지 테이블 구조에는 Hierarchical Page Table, 2-level page Table, Hashed page Table, Inverted Page Table 등이 있다code-lab1.com Hierarchical Page Table하나의 페이지 테이블 안에 여러개의 페이지 테이블을 넣은 페이..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%95/ [운영체제] 페이징(Paging)이란? 페이지 테이블이란? - 코드 연구소페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.code-lab1.com 페이징(Paging)이란?페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.페이징은 아래와 같은 특징들을 갖고 있다.물리주소 공간(Physical address)은 연속적이지 않을 수 있다(noncontiguous)페이지는 모두 같은 크기를 가진다.물리주소 공간을 페이지와 같은 사이즈로 나눈 것들을 프레임(Frame)이라고 한다.페이지 사이즈(=프레..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EB%8B%A8%ED%8E%B8%ED%99%94/ [운영체제] 내부 단편화, 외부 단편화란? 외부단편화 해결 방법 - 코드 연구소내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다.code-lab1.com 내부 단편화 (Internal Fragmentation)내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다. 예를 들어 아래와 같은 그림을 살펴보자.위와 같이 100MB의 메모리에 80MB 크기의 프로세스를 올리게 되면, 20MB의 내부 단편화가 발생..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/synchronization/ [운영체제] 동기화 문제(Synchronization problem), 경쟁 상태(Race Condition), 임계 영역(Critical Section) - 코동시에 공유 자원에 접근하는 것은 데이터의 일관성을 해칠 수 있다. 프로세스들의 실행 순서를 정하여 공유 자원의 일관성을 보장하는 것을 동기화(Synchronization)라고 한다.code-lab1.com 동기화 문제 (Synchronization Problem)동시에 공유 자원에 접근하는 것은 데이터의 일관성을 해칠 수 있다. 프로세스들의 실행 순서를 정하여 공유 자원의 일관성을 보장하는 것을 동기화(Synchronization)라..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/cpu-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81/ [운영체제] CPU 스케줄링이란? CPU 스케줄링 알고리즘 정리 및 요약, FCFS, SJF, Round Robin - 코드 연구CPU 이용률을 극대화하기 위해서는 멀티프로그래밍(multiprogramming)이 필요하다. 하지만 만약 CPU core가 하나라면 한 번에 하나의 프로세스만 실행 가능할 것이다. 이때 필요한 것이 CPU 스케줄링이다code-lab1.com CPU 스케줄링(CPU Scheduling)이란?CPU 이용률을 극대화하기 위해서는 멀티프로그래밍(multiprogramming)이 필요하다. 하지만 만약 CPU core가 하나라면 한..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EB%8B%A4%EC%A4%91-%EC%93%B0%EB%A0%88%EB%93%9C-%EB%AA%A8%EB%8D%B8/ [운영체제] 다중 쓰레드 모델(Multithreading model)이란? - 코드 연구소다중 쓰레드 모델은 Many to One model, One to One Model, Many to Many Model 등이 있다code-lab1.com 사용자 수준 쓰레드(User level Thread) vs 커널 레벨 쓰레드(Kernel Level Thread)사용자 수준 쓰레드는 사용자 수준(user level)에서 실행되며 thread library에 의해 관리된다.커널 수준 쓰레드는 커널 수준(kernel l..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/thread/ [운영체제] 쓰레드(Thread)란? 쓰레드 프로세스 차이, 멀티프로세스 멀티쓰레드 차이 - 코드 연구소쓰레드(Thread)란 프로세스 내에서 실행되는 흐름의 단위 혹은 CPU 스케줄링의 기본 단위 라고 할 수 있다.code-lab1.com 쓰레드란(Thread)란?쓰레드(Thread)란 프로세스 내에서 실행되는 흐름의 단위 혹은 CPU 스케줄링의 기본 단위 라고 할 수 있다. 쓰레드는 다음과 같은 특징을 가지고 있다. 쓰레드는 각자 자신의 Stack 영역을 보유한다. ( 최소한 자신의 레지스터 상태를 보유한다 ) 쓰레드는 프로세스 내에서 Code, Data, Heap 영역을 공유한다.쓰레드를 생성하고 swi..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/ipc/ [운영체제] IPC(Inter-Process Communication)란? pipes란? - 코드 연구소IPC는 Inter-Process Communication 의 줄임말로 프로세스간의 통신을 위한 메커니즘을 의미한다. 즉 IPC는 프로세스간의 통신을 돕는다. IPC는 다음과 같이 두 가지 모델이 존재한다.code-lab1.com IPC란?IPC는 Inter-Process Communication 의 줄임말로 프로세스간의 통신을 위한 메커니즘을 의미한다. 즉 IPC는 프로세스간의 통신을 돕는다. IPC는 다음과 같이 두 가지 모델이 존재한다. Shared MemoryMessage Passing 프로세스에 대해 자..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/pcb/ [운영체제] 프로세스 제어 블록(PCB : Process Control Block)란? 문맥교환(Context Switching)이란? - 코드 연프로세스 제어 블록(이하 PCB)은 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다. 쉽게 말하면 운영체제가 프로세스를 제어하기 위해 프로세스의 상태code-lab1.com 프로세스 제어 블록(Process Control Block)란?프로세스 제어 블록(이하 PCB)은 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다. 쉽게 말하면 운영체제가 프로세스를 제어하기 위해 프로세스의 상태 정보를 저장해 ..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/fork/ [운영체제] fork() 함수란? , fork() 함수 예제 , 부모 자식 프로세스 - 코드 연구소Unix 환경에서 fork() 함수는 함수를 호출한 프로세스를 복사하는 기능을 한다. 이때 부모 프로세스와 자식 프로세스가 나뉘어 실행되는데, 원래 진행되던 프로세스는 부모 프로세스(parent), 복사된code-lab1.com fork() 함수란?Unix 환경에서 fork() 함수는 함수를 호출한 프로세스를 복사하는 기능을 한다. 이때 부모 프로세스와 자식 프로세스가 나뉘어 실행되는데, 원래 진행되던 프로세스는 부모 프로세스(parent), 복사된 프로세스를 자식 프로세스(child) 라고 한다. fork() 함수..