우리가 사용하는 환경은 다중프로그래밍 환경으로 여러개의 프로세스가 시스템 내 존재한다. 때문에 자원을 할당할 프로세스를 선택해야 하는데 이 과정을 스케줄링이라고 한다.하나의 자원을 여러개의 스레드들이 번갈아 가며 사용 ex> 프로세서프로세스 스케줄링 : 프로세서 사용시
다중 프로그랭 시스템이란 여러개의 프로세스들이 존재 가능하고 프로세스들은 서로 독립적으로 동작한다. 이 작업은 동시에 이루어 질 수 있는데 이때 공유자원 또는 데이터가 있으면 문제 발생이 가능하다. 동기화 프로세스들이 서로 동작을 맞추는것 프로세스들이 서로 정보를 공
Deadlock state : 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우, 시스템내에 deadlock에 빠진 프로세스가 있는 경우 starvation은 cpu를 기다리면서 ready상태에 존재하게 되는데 우선순위가 오지 않아 대기하고 있는 상태이고 dead
우선순위 역전 : 상대적으로 우선순위가 높은 프로세스가 마치 우선순위가 낮은 프로세스 처럼 실행되는 현상, 공유자원에 대한 lock에 대한 개념때문에 발생하는 현상 우선순위 역전 해결 방법 우선순위 상속 기법 (Priority Inheritance Protocol)
block : 보조기억장치와 주기억 장치 사이의 데이터 전송 단위, 1 ~ 4 KBword : 주기억 장치와 레지스터 사이의 데이터 전송 단위, 16 ~ 64 bitaddress binding : 프로그램의 논리 주소를 실제 메모리의 물리 주소로 매핑하는 작업bindi
hole : 가용 메모리 공간, free blockFirst-fit : size 가 n 이상인 것 중 최초로 발견한 hole에 할당Next-fit : size가 n 이상인 것 중 최초로 발견한 hole에 할당 하나 탐색 범위는 이전에 할당한 블럭의 다음 부터 시작Bes
Memory allocation continous memory allocation(연속 할당) : 프로세스(context)를 하나의 연속된 메모리 공간에 할당하는 정책 uni-programming : 하나의 프로세스만 메모리 상에 존재, 가장 간단하나 프로그램의
커널의 역할 : 보안, 자원관리, 추상화
A named collection of related information일반적으로 비휘발성의 보조기억장치에 저장운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌operationcreate, read, write, reposition
Process process environment block(PEB) provess identifier(PID) user stack :) 유저 모드 프로세스 스택 (user mode process stack) 유저 모드 프로세스 스택의 경우, 알다시피 가상주소로
interrupt : 인터럽트 당한 시점의 레지스터와 program counter를 save 한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다 Interrupt(넓은 의미) interrupt(하드웨어 인터럽트) : 하드웨어가 발생시킨 인터럽트 trap(소프트웨어 인
정의응용프로그램에서 운영체제에게 기능(시스템 자원)을 수행해달라고 하는 하나의 수단효과저수준 프로그래밍을 몰라도 되므로 프로그래밍이 쉬워지며 호환성이 증대사용자 요청을 처리하기전 인터페이스 수준에서 올바른 요청인지 검사할 수 있으므로 시스템 보안성이 높아진다.이해사용자
과제 목표 커맨드 라인에서 파싱 기능 구현 과제 설명 현재 PintOS는 프로그램과 인자를 구분하지 못하는 구조 ex> $ls -a 를 입력하면 PintOS는 'ls -a'를 하나의 프로그램 명으로 인식 프로그램 이름과 인자를 구분하여 스택에 저장하고 인자를 프로
https://casys-kaist.github.io/pintos-kaist/introduction/getting_started.html project 1 threads/: 커널을 위한 소스 코드들이 있고 project 1에서 수정하여 사용한다. devices/: 입
프로젝트 2까지는 스택이 USER_STACK위치를 시작 주소로 하는 고정된 단일 페이지였고 프로그램의 실행인 이 안에서 해결 가능한 사이즈로 한정 지어졌다. 본 프로젝트에서는 지금의 스택 사이즈를 넘어가면 필요한 만큼 추가 페이지를 할당해준다. 스택 접근으로 나타내는
소스파일 include/vm/vm.h, vm/vm.c 가상메모리에 대한 일반 인터페이스 제공 여기서 추가 테이블 구현 include/vm/uninit.h, vm/uninit.c 초기화되지 않은 페이지(vmtype = VMUNINIT)에 대한 작업 제공 모