들어가며..비전공자로서 운영체제에 대한 지식이 많이 부족하다. 이번 기회에 학습 중에 있다. 학습 자료의 선정은 블로그(https://covenant.tistory.com/100)를 참고하였다. 그리고 이화여대 반효경 교수의 영상강의(http://ww
출처 : http://www.kocw.net/home/search/kemView.do?kemId=1046323컴퓨터 시스템 구조현대 운영체제는 interrupt에 의하여 구동된다. 1.1 CPU의 작동, 구조1) interrupt(하드웨어 인터럽트)CPU는 기
프로그램의 실행 (memory load)I/O의 File System으로부터 실행파일을 물리적 메모리에 로딩하여, CPU로 하여금 작업을 할 수 있도록 하는 과정을 의미. 1) virtual memory (논리 메모리)물리 메모리의 용량의 한계를 해소하기 위하여 논리메
프로세스란?Process is a program in execution.프로세스는 실행 중인 프로그램을 의미한다. 프로세스의 문맥(context)과 교환(context switch)1) 문맥cpu는 Program Counter의 주소를 통해 불러온 code를 regis
쓰레드 Thread란A thread (or lightweight process) is a basic unit of CPU utilization"쓰레드(가벼운 프로세스)는 CPU 사용의 기본 단위이다.하나의 프로세스(task)에 여러 개의 쓰레드가 작동할 수 있다. 전통
부모 프로세서의 자식 프로세서의 생성프로세서는 자신의 자식 프로세서를 생성할 수 있다. 쓰레드가 하나의 프로세서에서 하나의 주소공간에서 대부분의 자원을 공유한다. 하지만 부모 프로세서와 자식 프로세서는 값이 변경(Copy on Write)되기 전까지는 일부분을 공유할
CPU 스케줄러 CPU Schedulercpu 스케줄러 : 운영체제가 ready 상태의 cpu 중 running 할 cpu를 선택하는 것을 의미한다.Dispatcher : CPU의 제어권이 스케줄러에 의하여 다른 프로세서 넘어가는 것을 의미한다. 문맥 교환에서 디스패
프로세스 동기화란? 공유 메모리에 존재하는 데이타에 여러 개의 실행(다수의 cpu, 다수의 프로세스, 다수의 스레드 등)이 발생하는 경우 해당 값이 원치 않는 방식으로 수정되고 출력될 수 있음. 데이타의 완전성integrity을 보장하는 것을 동기화라고 함. 공유 메모
세마포Semaphores 란동기화를 위한 알고리즘과 atomic 연산을 통해서 Mutual Exclusion를 해소할 수 있음.한편, 이러한 알고리즘을 계속 구현하기보다, 해당 알고리즘을 자료형태로 추상화하여 개발을 좀 더 편하게 함. 세마포의 구현atomic한 변수를
데드락 DeadLock프로세스들이 서로가 가진 자원을 기다리며 block 된 상태.프로세스가 자원을 배출release 하는 시점은, 자신이 가진 자원use과 필요로한 자원request을 동시에 소유하고 그 작업을 완료할 때임. 그러므로 자원의 분배allocate의 방식
프로그래머가 프로그래밍을 할 때 String a = "hello"; 라는 코드를 작성한다. 여기서 변수 a는 Symbolic address라 하며, 심볼릭 주소가 가리키는 실제의 위치는 논리 주소이다. 우리는 프로그래밍을 할 때 변수만을 사용하지만, 내부적으로는 이미
논리 메모리의 적재 방식을 페이지를 기준으로 함. 하나의 단위인 페이지는 4kb 임. 물리 메모리를 4kb로 고정 분할Fixed partition 하며 한 단위를 frame이라 함. 논리 메모리도 물리 메모리와 동일한 방식으로 나눔. 프로세스의 메모리를 분산 및 할당N
페이지는 고정 분할의 기법을 사용함. 세그먼트는 의미 단위를 기준으로 가변 분할함. 크게는 프로그램 전체를 하나의 세그먼트라 하며, 작게는 code, data, stack 으로 나눔. 세그먼트는 의미 단위로 분리하기 때문에, 페이징 기법에서 사용하기에 까다로운 데이타의
현재 페이지는 페이징 기법을 기준으로 합니다.페이징 기법은 필요할 때 필요한 만큼의 페이지를 물리 메모리에 적재하는 방식이다. 이를 통한 장점으로는... \-> I/O 양의 감소 \-> Memory 사용량 감소 \-> 빠른 응답 시간 \-> 더 많은 사용자
페이지 폴트가 자주 발생하는 이유는 자주 사용되는 페이지가 계속 교체 되기 때문.특히 Loop를 구성하는 페이지의 경우, 이에 필요한 페이지가 한꺼번에 할당되야 함. 루프 한 번 마다 페이지 폴트가 발생하면 매우 비효율적임. 그러므로 프로세스 마다 최소한 필요로 하는