OS

Page Fault 처리 루틴 CPU 가 논리적 주소를 물리적 주소로 변환시키기 위해 페이지 테이블을 참조했지만 invalid bit 가 설정되어 있다면 다음과 같이 행동하게 된다. CPU 가 페이지 테이블을 참조한다. 하지만 invalid bit 이 설정되어 있다. trap 를 발생시켜 디스크 IO 를 실행시킨다. 이때 OS 는 해당 프로세스를 block 상태로 바꾼다. 디스크 IO 가 끝나기 전까지는 다른 프로세스가 CPU 를 차지한다. OS의 권한으로 디스크 IO를 실행시킨다. 메모리에 적재를 한다. valid bit 으로 바꿔준다. block 한 프로세스를 ready 큐에 넣어주고 다시 실행시킨다.페이지 교체 알고리즘 어떠한 페이지를 교체 아웃시킬 것인가에 대한 알고리즘 최적 페이지 교체 선입선출..
반효경 교수님 운영체제 강의와 도서를 정리한 내용입니다. 주소 바인딩 CPU 는 소스 코드를 읽어낼 때 physical address 가 아닌 virtual address 를 읽고 있다. 이러한 상황에서 메모리를 접근해야 한다면 physical address 가 필요해진다. 이렇게 논리적 메모리 주소를 물리적 메모리 주소로 바꿔주는 것을 Address Binding 이라고 부른다. 주소 바인딩은 물리적 메모리 주소가 결정되는 시기에 따라 세가지로 분류된다. 컴파일 타임 바인딩 코드를 컴파일할 때 물리적 메모리 주소가 정해진다. 만약에 다른 물리적 메모리 주소를 사용하고 싶다면 다시 컴파일해야 하므로 잘 사용하지 않는 기법이다. 로드 타임 바인딩 프로그램의 실행이 시작될 때에 물리적 메모리 주소가 결정된다..
반효경 교수님 운영체제 강의와 도서를 정리한 내용입니다. 데드락이란 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 된 상태 이때의 자원은 IO 디바이스, CPU, 메모리, 세마포어 등이 될 수 있다. 데드락의 4가지 조건 데드락은 4가지 조건을 만족해야 성립된다. mutual exclusion (상호 배제) : 매 순간 하나의 프로세스만이 자원을 사용할 수 있다. no preemption (비선점) : 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않는다. 생각해보면 선점이 가능하다면 그대로 빼앗아 쓰면 되기 때문에 데드락이 생기지 않는다. hold and wait (보유 대기) : 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 가지고 있는다. circul..
OS 동기화 Race condition (자원 경쟁) 두 개의 프로세스가 하나의 자원에 대해 동시에 접근하는 상태 예시1. kernel 수행 중 인터럽트 발생 kernel 모드가 실행중인데 인터럽트가 들어왔다. (예를 들면, 타이머 인터럽트) 인터럽트 또한 OS가 주도권을 갖고 있는 상황이기 때문에 kernel mode이며 이전에 실행되던 프로세스와 같은 주소공간을 공유하고 있다. 이에 따라 공유된 data 를 가지고 경쟁하게 되는 상황이 된다. 예시2. process가 system call를 하여 kernel mode로 수행 중인데 인터럽트 당하여 context switch 가 일어나고 다시 kernel mode로 들어가는 경우 모든 프로세스는 kernel mode에서 다같은 공유 데이터 공간을 쓰기 ..
_ KOCW 반효경 교수님 운영체제 강의와 도서를 정리한 내용입니다._ CPU 스케줄링이 필요한 이유? CPU 버스트 시간은 사용자 프로그램이 CPU를 직접 이용하여 명령을 수행하는 시간을 의미한다. x축이 CPU 버스트 시간이고 y축이 빈도인 그래프를 살펴보면, 왼쪽은 CPU 버스트 시간이 짧은 작업 (입출력 요청 후 바로 다른 CPU로 전환)인 IO 바운드 프로세스이며, 오른쪽은 CPU 점유 시간이 긴 CPU 바운드 프로세스이다. 만약 모든 프로세스가 동일하다면 수행하는 작업에 따라 응답 시간의 차이는 없을 것이다. 하지만 위 그래프처럼 CPU 점유 시간이 긴 프로세스와 짧은 프로세스가 존재하기에, CPU 버스트 시간이 짧은 프로세스에게 우선적으로 CPU를 할당할 수 있는 스케줄링이 필요하다. (이렇..
KOCW 반효경 교수님 운영체제 강의와 도서를 정리한 내용입니다. 프로그램 구조 메모리 주소 영역은 크게 code, data, stack 세 가지로 구분된다. 코드 영역은 기계어 instruction이 보관되는 공간이다. 데이터 영역에는 프로그램이 사용하는 데이터, 예를 들면 전역 변수 등이 저장되어 있다. 스택 영역은 함수 호출 시 해당 함수가 실행을 완료하고 돌아갈 주소와 데이터를 임시로 보관하는 곳이다. (참고로, 스택에는 스레드 정보도 저장될 수 있다.) 스택(Stack) vs 프로세스 제어 블록(PCB) ? 스택도 프로세스 제어 블록(PCB)과 비슷한 역할을 수행한다. 두 개념의 차이점은 어떤 상황에서 호출되느냐에 있다. 프로그램 내에서 발생하는 일반 함수 호출의 경우, 복귀 주소가 스택에저장된..
KOCW 반효경 교수님 운영체제 강의와 운영체제와 정보기술의 원리 도서를 정리한 내용입니다 컴퓨터는 내부장치와 외부장치로 나뉘며, CPU와 메모리부터 시작해 IO 디바이스를 살펴볼 수 있다. 컴퓨터 구조 메모리 내부장치인 메모리는 휘발성이며, CPU가 실행할 명령어와 데이터를 저장하는 공간으로, 여러 개의 사용자 프로그램과 운영체제(OS)가 올라간다. OS 는 전체 파일이 모두 올라가진 못하고 필수적인 부분만 항상 메모리에 올라가있다. 이를 좁은 의미에서의 커널이라고 부른다. CPU CPU 는 메모리에 적재되어 있는 instruction를 가지고 와서 한줄씩 실행시킨다. 이때의 instruction은 기계어에 가까운 어셈블리어이다. (add, sub 등) IO 장치 외부장치인 IO 장치에는 키보드, 하드..
kkyu0718
'OS' 태그의 글 목록