본문 바로가기
728x90
반응형

분류 전체보기132

pintOS | Project 4 | Subdirectories and Soft Links 기본적인 파일 시스템에서 모든 파일들은 하나의 디렉토리에 있다. 디렉토리 엔트리가 파일이나 다른 디렉토리를 가르키도록 수정해야 한다. 즉 root 디렉토리 내 파일과 디렉토리를 생성할 수 있도록 계층구조를 구현해야 한다. 전 포스팅에서 현대 파일 시스템은 초기 사이즈가 0으로 생성되고 파일 끝 부분에 write될 때 확장된다고 했다. 디렉토리 역시 원래 크기 이상으로 확장될 수 있도록 하자. 기본 파일 시스템은 파일 이름이 14 character 제한이 있다. 개별적으로 파일 이름 구성요소에 대한 제한을 유지하거나 확정하거나 등 원하는대로 확장할 수 있다. 각 프로세스에 대해 별도의 현재 디렉토리를 유지하라. 시작 시 루트(root)를 초기화한 프로세스의 현재 디렉토리로 설정해라. 하나의 프로세스가 fo.. 2021. 10. 30.
pintOS | Project 4 | Indexed and Extensible Files 기본 파일 시스템은 외부 단편화에 취약한 single extent로 파일을 할당한다. 즉 n-block 파일은 n개의 블록이 할당 가능 상태일지라도 할당되지 않는다(외부 단편화 얘기). on-disk inode 구조체를 수정하여 이 문제를 제거해라. on-disk inode 구조체가 뭘까. 확인해봐야겠지? 이 구조체는 filesys/inode.c 에 있다. /* On-disk inode. * Must be exactly DISK_SECTOR_SIZE bytes long. */ struct inode_disk { disk_sector_t start; /* First data sector. */ off_t length; /* File size in bytes. */ unsigned magic; /* Magi.. 2021. 10. 29.
pintOS | Project 4 | Introduction pintos-kaist project 4 gitbook ↓ Introduction · GitBook Project 4: File Systems In the previous two assignments, you made extensive use of a file system without actually worrying about how it was implemented underneath. For this last assignment, you will improve the implementation of the file system. You will b casys-kaist.github.io ※ 해석 내 멋대로임. 수정 및 보완 부분 있으면 알려주세여 Project 4: File Systems 이전 프로.. 2021. 10. 28.
pintOS | Project 3 회고 1. Project3 목표 pintos-project3 git book Introduction · GitBook Locate the page that faulted in the supplemental page table. If the memory reference is valid, use the supplemental page table entry to locate the data that goes in the page, which might be in the file system, or in a swap slot, or it might simply be an al casys-kaist.github.io 핀토스 프로젝트 3의 주제는 Virtual Memory이다. 프로젝트 3 이전까지 핀토스는 세그먼트를.. 2021. 10. 28.
운영체제(Operating System) | 메모리(Memory) 스레드까지 하다 갑자기 메모리까지 점프... 어쩔 수 없다. 지금 핀토스 virtual memory를 진행하고 있어서 일단 메모리 관련 OS부터 정리하려고 한다. 메모리 시스템은 여러 가지 용량, 비용, 접근 시간을 가지는 저장 장치들의 계층구조이다. 메모리 계층구조는 아래 사진 참조! CPU 레지스터: 가장 자주 이용하는 데이터 보관(locality) 캐시: SRAM. CPU부근에서 비교적 느린 메인메모리에 저장된 데이터와 인스트럭션들의 부분집합에 대한 준비장소 메인메모리: DRAM. 크고 느린 디스크들에 저장된 데이터를 준비하는 데 사용, 이 디스크들은 네트워크로 연결된 다른 머신들의 디스크에 저장된 데이터를 위한 준비장소 1. RAM(랜덤-접근 메모리) | SRAM (정적 RAM) SRAM, 즉 정.. 2021. 10. 26.
나만의 무기 | 프로젝트 소개 | 지인들과 내기를 위한 소셜 웹 게임 1. 주제 소셜 웹 미니 보드 게임: 친구, 동료들과 실시간으로 온라인에서 멀티 게임을 즐길 수 있도록 하는 웹 서비스 기획 지인들과 내기를 위해 짧은 러닝타임과 간단한 조작법의 게임들 개발 예정 2. 프로젝트 목표 | 안정적인 동시성 프로그래밍 소셜 서비스인만큼 동시 접속자들이 게임을 진행할 때, race condition 등의 동기화 문제 없는 서버 구축 | 접근성 누구나 쉽게 접근할 수 있도록 웹 기반 게임 개발 쉬운 게임 룰과 조작법으로 게임에 대한 진입 장벽 낮추기 | Fun 게임의 본질은 재미! 짧은 시간에 동료끼리 재밌는 추억을 공유할 수 있는 게임 구현 3. 주제 선정 배경 커피나 점심 내기를 할 때 사다리 타기 등 복불복 게임만 하는 것은 식상함 웹으로 쉽게 접근할 수 있고, 간단하게 즐.. 2021. 10. 24.
정글에서 살아남기| WEEK11 | 계속되는 삽질, 이 경험마저 도움이 되겠지 현재 백신 2차 모더나 맞은 상태. 어제부터 진짜 개아프다. 말도 안 되게 아프다... 온 몸이 바늘로 찔리는 것처럼 쿡쿡 쑤시고 숨쉴 때마다 폐가 아프다ㅠㅠㅠ 옷은 아무리 껴입어도 혹한기 마냥 춥다. 타이레놀 먹고 계속 죽은 듯이 잠만 자니까 쪼오오오끔은 나아진듯. 점심에 범석이랑 민우랑 점심 먹고(그나마 시킨 것 절반도 못 먹음) 그 이후에 아무것도 안 먹고 있는데 입맛도 전혀 없음. 내일은 진짜 많이 괜찮아지길 바라면서....! 이번 주도 저번 주와 마찬가지로 계속 핀토스 프로젝트3 진행하는 중. 현재 fail 3개만 남고 나머지는 다 통과한 상황. 이번 주는 되게 고무적인게, 그래도 에러가 있을 때, 에러 문구를 보면서 직접 디버깅을 하나씩 해갔다는 점. 그게 옳은 방법인지 아닌지는 판단할 수 없.. 2021. 10. 24.
pintOS | Project 3 | 버그잡자 현재 깃북을 따라 project 3을 구현하고 있고, Memory Mapped file까지 완료한 상태다. 여기에 Anonymous page 때 적지 않았던 부분들을 일단 구현했다. (현재는 swap in/out까지 구현 완료) copy와 clean up 작업을 하기 위해서 spt를 재방문한다. spt를 재방문 하는 이유는 아까 구현했던 초기화와 관련된 함수들을 사용하기 때문이다. 먼저 copy하는 함수부터 보자. bool supplemental_page_table_copy (struct supplemental_page_table *dst, struct supplemental_page_table *src); 함수 인자를 보면 dst와 src가 있는데, spt의 src에서 dst로 복사한다는 뜻이다. 이 .. 2021. 10. 22.
pintOS | Project 3 | Swap In/Out Memory swaping은 물리 메모리의 사용을 극대화하기 위한 메모리 회수 기술이다. 메인 메모리의 프레임들이 할당될 때, 시스템은 유저 프로그램으로부터 메모리 할당 요청을 처리할 수 없다. 이를 위한 해결 방법 중 하나는 현재 디스크에 사용되지 않는 메모리 프레임을 swap out하는 것이다. 이것은 몇몇 메모리 자원들을 가용가능하게 하고 다른 어플리케이션을 사용가능하게 한다. 스와핑은 OS에 의해 실행된다. 시스템은 메모리 할당 요청을 받았는데 메모리가 부족하다면, 디스크를 스왑할 페이지를 선택한다. 그 후 메모리 프레임의 상태는 디스크에 복사된다. 하나의 프로세스가 스왑 아웃 되었던 페이지에 대한 접근을 시도할 때, OS는 정확한 내용을 메모리로 다시 가져와 페이지를 복구한다. 이 때 선택되는 .. 2021. 10. 21.
728x90
반응형