2021.12.23 ~ 2022.02.22Project 1 : Threads - 2021.12.23 ~ 2021.12.29Project 2 : User Programs - 2021.12.30 ~ 2022.01.10Proejct 3 : Virtual MemoryProje
.exe - 프로그램 프로세스 - .exe 를 실행하고 있는 상태 (프로그램을 실행하고 있는 상태) -> 운영체제는 여러개의 프로세스를 돌리고 있다. 운영체제는 동시적, 병렬적, 혹은 이 둘의 혼합으로 프로세스를 돌린다. 동시성은 프로세스 하나가 Context Sw
시스템콜은 운영체제가 할 수 있는 서비스를 인터페이스에 제공한다.사용자 모드는 메모리나 하드웨어 등에 직접적인 접근을 하지 않는다.커널 모드는 한다. <- 커널모드의 특권.문제는 프로그램이 커널모드에서 실행될 때 충돌이 발생하면, 모든 시스템이 충돌하거나 정지
In this assignment, we give you a minimally functional thread system. Your job is to extend the functionality of this system to gain a better understa
https://firecatlibrary.tistory.com/49?category=874970Process Control Block (PCB)OS가 프로세스 관리에 필요한 정보 저장프로세스 생성 시, 생성 됨 PCB 가 관리하는 정보※ PCB 정보는 OS별로
Created StateReady State Running StateBlocked/Asleep StateSuspended StateTerminated state
FCFS ( First-Come-First-Served) FIFO (First-In-First-Out) 과 동치 말그대로, 먼저 준비된 프로세서를 먼저 처리 특징 간단하고 공정하다. 우선순위, 실행시간 등의 다른 요소는 전혀 고려하지 않고 무조건 먼저 준비되면 먼
Time Sharing System에서는 주기적으로 Context Switching을 진행한다. Running 상태의 프로세스가 I/O 작업을 수행하지 않더라도 일정시간이 되면 Ready 상태로 만드는데, 이 때 사용하는 스케줄링 방법이 라운드로빈 스케줄링이다. 라운드
SJF(Shortest-Job-First) 스케줄링과 동치.burst time (실행시간)이 가장 작은 프로세스를 먼저 처리하는 기법이다.비선점 스케줄링이다.SJF + 선점 -> SRTF(Shortest Remaining Time First)1\. SJF는 Averag
Reimplement timer_sleep(), defined in devices/timer.c.Although a working implementation is provided, it busy waits, that is, it spins in a loop checki
Team21\. alarm-clockbusy wait 문제가 발생했다. busy 는 runninng중인 쓰레드가 cpu를 점유하고있는데, 하는일은 yield 밖에 안하는 상태이다.자원낭비 발생하기 때문에, 해결해야한다.해결방법 : sleep/awake 방식 사용, 타이
예외상황 - 프로세스 개념을 운영체제 커널이 제공할 수 있게 하는 기본 구성 블록. 프로세스 : 실행 프로그램의 인스턴스 시스템 내의 각 프로그램은 어떤 프로세스의 문맥에서 돌아간다. 문맥은 프로그램이 정확하게 돌아가기 위해서 필요한 상태로 구성된다. 이 상태는 메
페이징 기법(paging)은 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다. 즉 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지(page)라고
System call handler 구현해야함. userprog/syscall.c 현재 상태(skeleton) : 프로세스를 제거하여 시스템콜을 핸들하고있다. 시스템 호출 번호를 검색한 다음 시스템 호출 인수를 검색하고 적절한 작업을 수행해야 한다. 운영 체제는
struct threadint exit_status : 자식의 종료상태를 확인 목적, syscall.c -> exit 에서 저장struct semaphore fork_sema : 자식이 fork 하기 전까지 부모를 block 상태로 만들어주기 위한 sema(thread
pass tests/threads/priority-donate-chainpass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userpr
Parameter : 함수나 메소드 정의에서 나열되는 "변수(Variable) 명."Argument : 함수 또는 메소드를 호출할 때, 전달 혹은 입력되는 "실제 값(Value)."예시)어떤 함수에서 이 함수 씀.process_fork(thread_name, &cur-
gitbook project2 argument passing에서 x86-64 Calling Convention을 보자. https://casys-kaist.github.io/pintos-kaist/project2/argument_passing.html 1 ~ 5번까
Argument Passing Setup the argument for user program in process_exec() x86-64 calling Convention 유저레벨 응용은 %rdi, %rsi, %rdx, %rcx, %r8 and %r9 등의 시퀀
2022/1/11 ~ 2022/1/24Team 8 - 이후명, 조은우, 진승현https://casys-kaist.github.io/pintos-kaist/project3/introduction.html제한없는 무한대의 메모리의 환상을 building 할꺼다.p
Handling page fault
vm 시스템을 서포트하기위해, 너는 가상 페이지들과 물리 프레임들을 효율적으로 관리할 필요가 있다. 이게 뭔말이냐면... 너는 계속해서 매섭게 가상이나 물리 메모리 영역이 사용중인지, 사용중이라면 어떤 목적으로, 누구에의해서 사용중인지를 추적해야 한다. 너는 젤먼저 s
Executable and Linkable FormatELF는 유닉스 계열 운영체제의 실행, 오브젝트 파일, 공유 라이브러리, 또는 코어 덤프를 할 수 있게 하는 바이너리 파일이다. 간단히, 실행 파일이다. 원래 뜻은 Extensible Linking Format 이라
elf - 리눅스 메뉴얼 페이지https://man7.org/linux/man-pages/man5/elf.5.html리눅스 커널 유저와 관리자 가이드https://www.kernel.org/doc/html/latest/admin-guide/mm/con
일단, 모든 테스트에 통과는 했다.(extra COW 제외)많은 블로그, git, 책, 자료들을 취합해서 구현하였다.하지만, 운이 좋지 않으면 안되는 테스트들도 있다...Project4를 진행하면서 Project3의 부분적인 문제들과 COW등을 팀원들과 해결하기로 했다
MMU는 virtual address를 사용하여 physical address에 map한다. 이것은 다른 프로세스들의 같은 주소영역 사용을 가능하게 한다. What is a virutal address? 인텔 x86-64의 virtual address는 사실 48비
참고한 블로그 : 정리왕 DK https://sunset-asparagus-5c5.notion.site/Step-1-Supplemental-Page-Table-73078ee7fb9c4d90be0e9a9689d4dd15 Project 3 : Virtual Memory
Indexed and Extensible Files 참고: 파일 시스템 파티션이 8MB를 넘지 않을 것이라고 가정할 수 있습니다. 파티션만큼 큰 파일을 지원해야 합니다(메타데이터 제외). 각 inode는 하나의 디스크 섹터에 저장되어 포함할 수 있는 블록 포인터의 수
참고: DK notion https://sunset-asparagus-5c5.notion.site/cbeaec069d2448e79fdb8b28733e76b1FAT 기반 파일 시스템들은 파일 시스템 내부의 모든 클러스터 하나하나에 대한 항목을 FAT테이블에서 관