본문 바로가기

CS(ComputerScience)/Pintos

(5)
Pintos Project, VScode Debugging Setting Pintos Project, VScode Debugging Setting 📌 Extension 설치 Native Debug install 📌 .vscode/launch.json Debug C/C++ File 클릭 .vscode/launch.json 생성되면, 수정 { "configurations": [ { "type": "gdb", "request": "attach", "name": "Attach to gdbserver : threads", "executable": "${workspaceRoot}/vm/build/kernel.o", "target": "localhost:1234", "remote": true, "cwd": "${workspaceRoot}", "valuesFormatting": "parse..
Pintos, MM & Anon Page (feat. Page Fault Handling) Pintos, MM & Anon Page (feat. Page Fault Handling) Pintos Project3 Virtual Memory 궁극적인 목표는 프로세스가 물리적 용량 이상으로 메모리에 엑세스 할 수 있도록 하는 것! 즉, 부족한 RAM용량을 보완하는데 Virtual Memory가 쓰인다. 그러기 위해서는 보조적인 Page Table, Page Fault Handling 등을 구현해야 한다. 이번 주차는 Memory Management와 Anonymous Page 챕터에서 Page Fault Handling를 구현해봤다. Memory Management 프로세스(Pages) > 할당받은 메모리(RAM) RAM은 한정적인 용량을 가지고 있으므로 전체 프로그램을 메모리에 가져오는 대신 적당..
Pintos Project2. User Program Pintos Project2. User Program System Call Flow in Virtual Space 가상공간인 User mode와 Kernel mode를 왔다 갔다하면서 시스템 콜이 진행되는 전반적인 과정을 정리해 봤다. 운영 체제는 새 프로세스가 생성되거나 기존 프로세스가 메모리에 로드될 때 그림과 같이 가상 메모리 시스템이 설정됩니다. 사용자 모드에서 시스템 콜이 발생하면, 커널 모드로 전환해 프로그램이 요청한 특정 서비스(즉, 시스템 콜 함수)를 호출합니다. 커널은 요청된 서비스를 처리하고 호출 처리가 완료되면, 다시 사용자모드로 전환해 처리 결과를 반환합니다. User mode --- %rax(System call number) ---> Kernel mode User mode
Pintos, Priority Scheduling and Synchronization Pintos, Priority Scheduling and Synchronization CPU를 점유하는 과정을 추상화한 개념! The preemption CPU에서 현재 실행 중인 프로세스를 중단하고 실행할 다른 프로세스로 전환하는 운영체제 개념. 🔎 CPU 선점이 필요한 이유? 당연한 이야기지만, 이 모든 작업은 자원을 더욱 효율적으로 사용하기 위해서다. 프로세스를 선점하고 다른 프로세스가 실행되도록 허용하므로써 운영체제 리소스의 공정성과 효율성을 보장해준다. waiting list에 있냐, read list에 있냐 이동하는데도 비용&시간이 소요되므로 상황을 잘 고려해 context swith를 할지 말지 정해줘야 한다. 대기실 칸이 한칸이면 Mutex, 여러칸이면 semaphore Pintos 과제에..
Pintos Alam Clock Pintos Alam Clock 1초당 tick이 100번 돈다는 의미이다. 즉 1 tick은 100분의 1초(10ms). 시스템이 특정 시간에 작업이나 이벤트를 예약할 수 있도록 하는 기능! 활동을 관리하고 조정하여 적정한 시간에 적절한 순서로 발생하도록 전산자원을 관리하는데 사용. 시스템(백그라운드 작업, 바이러스 검사, 소프트웨어 fetch 업데이트 예약 중요한 이벤트나 기한에 대한 알림 또는 경고(작업을 놓치거나 간과할 가능성 ↓) 사용자에게 안정적이고 효과적인 일정 도구를 제공함. 🔎 컴퓨터에서 기계 명령을 어떻게 실행할까? 1. Fetch : 메모리에서 명령어를 가져와서 CPU의 명령어 레지스터(IR, instruction register)에 로드 2. Decode : 수행할 작업과 사용할 피..