728x90

핀토스 11

11Week 24.03.28 - 24.04.03 부제 : 야호!!

회고 야호!! 야호를 몇 번째 쓰는 줄 모르겠다. 하지만 진짜 정말로 즐겁다. 왜냐!! 왜냐하!!!!!!!! 왜냐하면!!!!!!!!!!!!!!!!!!! 잘 끝마쳤으니까 project 1,2,3 중 가장 힘들었지만, 가장 성취감있고, 가장 재미있었다. vm에 대해서 이론적으로 알고 있던 부분을 구현을 하면서 다양한 트러블 슈팅을 겪을 수 있었고, 개인적으로 많이 성장하는 시간을 가질 수 있었다. 핀토스 주차가 드디어 끝났다. 하지만 아직은 내가 했던 것들이 완전하게 내 것이 되었냐 하면 그것은 아니다. 내것으로 만드는 시간과 새로운 공부를 하는 시간의 비율을 잘 지켜 더욱 더 성장할 수 있게 해야겠다. 하루하루 강해지는 나.. 사이어인 아닐까? 더 더 더더더더더 강해지고 싶다. 할 수 이따!! KPT 회고..

Project3. Virtual Memory

Project3. Virtual Memory Git Book https://github.com/EririnG/PintOS_Kaist GitHub - EririnG/PintOS_Kaist: PintOS_Kaist PintOS_Kaist. Contribute to EririnG/PintOS_Kaist development by creating an account on GitHub. github.com Krafton Jungle Week 11 Team 2 WIL Project 3 VM : Memory Management ~ Swap In/Out 느낀점 드디어 길고 길었던 Pintos가 끝이 났다. 핀토스를 진행하며 좌절이란 좌절도 정말 많이했고, 그만큼 성취감이나 즐거움 또한 있었다. 특히 무언가를 해결해서 ..

Study/PintOS 2024.04.03

24.03.30 운영체제, PintOS

운영체제 32. 크래시 일관성 : FSCK와 저널링 여타 자료구조와는 다르게 파일 시스템의 자료구조는 안전하게 저장되어야 한다. 파일 시스템이 가진 가장 큰 어려움은 전력 손실이나 시스템 크래시가 발생하는 상황에서도, 어떻게 안전하게 디스크 상의 내용을 갱신하는 가에 대한 문제이다. 전력손실이나 크래시 때문에 디스크 상의 자료구조를 안전하게 갱신하는 것은 상당히 까다로운 작업이 된다. 파일 시스템은 크래시 일관성(crash - consistency)라는 새롭고 흥미로운 문제에 직면한다. 어떤 특정 작업을 위해 자료구조 A와 B를 갱신해야 한다고 했을 때 디스크는 한 번에 하나의 요청만 처리할 수 있기 때문에 두 요청 중 하나의 요청이 먼저 디스크에 도달할 것이다. 하나의 쓰기 작업만 완료한 상태에서 시스..

Project2. User Program

Project2. User Program Git Book https://github.com/jaenam615/pintos-kaist GitHub - jaenam615/pintos-kaist: 크래프톤 정글 4기 pintOS과제 Project 1 & 2 크래프톤 정글 4기 pintOS과제 Project 1 & 2. Contribute to jaenam615/pintos-kaist development by creating an account on GitHub. github.com Krafton Jungle Week 7 Team 6 WIL Project 2 User Programs: 느낀점 참 더 어려워지기 힘들겠다라는 생각을 계속해서 무시하고 난이도는 계속 올라가는것이 신기하다. 앞으로 취직이나 살아가면서..

Study/PintOS 2024.03.21

24.03.18 운영체제, KEYWORD, PintOS

운영체제 21. 락 프로그래머들은 소스코드의 임계영역을 락으로 둘러서 그 임계영역이 마치 하나의 원자단위 명령어인것 처럼 실행되도록 한다. 21.1 락 : 기본개념 락은 둘 중 하나의 상태를 갖는다. 첫 번째는 사용가능(available) 상태 (unblocked 또는 free) 이다. 즉, 어떤 쓰레드도 락을 소유하고 있지 않다. 두 번째는 사용 중(acquired) 상태이다. 즉, 임계영역에서 정확히 하나의 쓰레드가 락을 획득한 상태이다. lock과 unlock 루틴의 의미는 간단하다. lock() 루틴 호출을 통해 락 획득을 시도한다. 만약 어떤 쓰레드도 락을 갖고 있지 않으면 그 쓰레드는 락을 획득하여 임계영역 내로 진입한다. 이렇게 락을 획득한 쓰레드를 락 소유자(owner)라고 부른다. 만약 ..

24.03.17 운영체제, PintOS

운영체제 20. 병행성 : 개요 하나의 쓰레드의 상태는 프로세스의 상태와 매우 유사하다. 쓰레드는 프로그램 카운터와 연산을 위한 레지스터들을 가지고 있다. 만약 두 개의 쓰레드가 하나의 프로세서에서 실행 중이라면 실행하고자 하는 쓰레드는 반드시 문맥교환을 통해 실행중인 쓰레드와 교체 되어야 한다. 프로세스의 쓰레드들의 상태를 저장하기 위해서는 하나 또는 그 이상의 쓰레드 제어블럭(TCB : thread control block)이 필요하다. 프로세스와의 가장 큰 차이는 프로세스의 경우와 달리 쓰레드간의 문맥 교환에서는 주소공간을 그대로 사용한다는 것이다.(사용하고 있던 페이지 테이블을 그대로 사용하면 된다.) 쓰레드와 프로세스의 또 다른 차이는 스택에 있다. 고전적 프로세스 주소 공간과 같은 모델(단일 ..

24.03.16 운영체제, PintOS

운영체제 19. 완전한 가상 메모리 시스템 19.1 VAX/VMS 가상 메모리 VMS는 컴퓨터의 구조적 결함을 소프트웨어로 보완한 훌륭한 사례다. 운영체제가 이상적인 개념과 환상을 제공하기 위해 하드웨어에 의존하지만, 하드웨어가 모든것을 해내지 못할 경우도 있다. 하드웨어 결함에도 불구하고 시스템이 효과적으로 작동하기 위해서 VMS 운영체제가 무엇을 하였는지 볼 것이다. 메모리 관리 하드웨어 VAX-11은 프로세스마다 512바이트 페이지 단위로 나누어진 32비트 가상주소 공간을 제공한다. 가상주소는 23비트 VPN과 9비트 오프셋으로 구성되어있다 VPN의 상위 두 비트는 페이지가 속한 세그멘트를 나타내기 위해서 사용되었다. 이 시스템은 하이브리드 구조를 갖고 있다. 주소공간의 하위 절반은 ‘프로세스 공간..

24.03.15 운영체제, PintOS

운영체제 18. 물리 메모리 크기의 극복 : 정책 빈 메모리 공간이 거의 없으면 운영체제는 메모리 압박(memory pressure)을 해소하기 위해 다른 페이지들을 강제적으로 페이징 아웃(Paging out)하여 활발히 사용중인 페이지들을 위한 공간을 확보한다. 내보낼(evict) 페이지 선택은 운영체제의 교체정책(replacement policy) 안에 집약되어 있다. 18.1 캐시관리 캐시 히트와 미스의 횟수를 안다면 프로그램의 평균 메모리 접근 시간(AMAT : average memory access time)를 계산할 수 있다. AMAT = TM + (PMISS - TD) TM : 메모리 접근 비용 TD : 디스크 접근 비용 PMISS : 캐시에서 데이터를 못 찾을 확률 메모리의 데이터를 접근하..

Project1. Threads

Project1. Thread https://github.com/jaenam615/pintos-kaist GitHub - jaenam615/pintos-kaist: 크래프톤 정글 4기 pintOS과제 Project 1 & 2 크래프톤 정글 4기 pintOS과제 Project 1 & 2. Contribute to jaenam615/pintos-kaist development by creating an account on GitHub. github.com Krafton Jungle Week 7 Team 6 WIL Project 1 Thread : Alarm Clock ~ Priority Scheduling(WIP) 느낀점 일단 너무 어려웠던 프로젝트1이 끝이났다. 사실 코치님은 1,2 는 할만하고 3이 진짜..

Study/PintOS 2024.03.12

24.03.10 운영체제, PintOS 정리

운영체제 13. 빈공간 관리 빈공간 관리는 관리하고 있는 공간이 고정 크기의 단위로 나누어져 있는 경우 쉽다. 그런 경우 고정 크기 단위의 리스트를 유지하면 된다. 클라이언트가 그 중 하나를 요청하면 첫 번째 항목을 반환하면 된다. 빈공간 관리가 더 어렵고 흥미로운 경우는 관리하는 공간이 가변 크기 빈 공간들의 집합으로 구성되어 있는 경우다. 이 경우 malloc()과 free()에서 처럼 사용자 수준 메모리 할당 라이브러리에서 그리고 세그멘테이션으로 물리 메모리를 관리하는 운영체제에서 발생한다. 어느 경우에도 외부 단편화가 존재한다. 13.1 가정 malloc()과 free()에서 제공하는 것과 같은 기본 인터페이스를 가정한다. 이 라이브러리가 관리하는 공간은 역사적으로 힙으로 불리며, 힙의 빈공간을 ..

728x90