컴퓨터 시스템/OS 6

컴퓨터 시스템/OS [WIL] 컴퓨터 운영체제 ' File System' (pintos project 4) - 작성 중

pintos 마지막 주차다. 마지막 주차인데 구현할게 많은데 다른 주차에 대비해서 시간이 많지 않은 것 같다. 제대로 공부하고 배운내용을 잘 정리할 수 있을지 잘모르겠다 우선 의식의 흐름대로 배운걸 작성해야 할 것 같다. 오늘은 일단 시작 전에 테스트 케이스가 어떻게 돌아가는지 확인하고 수정해보려고 돌려봤는데.. 1 - 3주차까지 통과시켜놓았던 테스트 케이스가 다시 모두 fail 나는 것을 확인했다. 이 부분만 보면 파일시스템이 뭔가 제대로 작동하지 않고 있다는 추론이 가능했다. 파일시스템에 대해 자료를 찾아 공부하고 FAT 시스템이 작동하게끔 코드를 수정하니 기존에 pass하던 test case들이 통과됨을 확인했다. 돌아가다가 멈추는 경우와 애초에 안돌아가는 것을 디버그하는 것은 좀 느낌이 다른 것 ..

컴퓨터 시스템/OS [WIL] 컴퓨터 운영체제 ' Virtual memory ' (pintos project 3)

회고 및 잡설 Pintos 초기에는 어려운 난이도와 디버그의 빡침을 못참고 혼자 샤우팅을 하곤했다. 한달 정도 지나니 난이도에 어느정도 적응하고 무언가 잘 되지 않더라도 내면의 분노를 다스리는 것을 넘어서 이제는 감정에 무뎌진 나를 발견했다. 이번주차에 진행된 Pintos project는 Virtual memory에 대한 내용이다. 책으로 처음 접했을 때 와닿지 않았던 부분들을 이해할 수 있는 뜻깊은 시간이다. 1, 2주차와 마찬가지로 책에서 관련내용을 읽고 처음에 상황을 이해하는데 초반 몇 일을 소모했다. 많이 어려웠지만 늘 그랬듯이 시간을 갈아넣어서 그래도 많은 공부가된 것 같다. 아직도 배워야 할 것들이 너무 많기 때문에 핀토스 메뉴얼이나 개념 설명글을 작성하는데에 시간을 많이 쓰고 싶지 않다. 단..

ELF 파일구조 및 헤더

OS에서 초기 process exec( ) 함수 내부에 ELF 형식의 실행파일을 load 한다. 자세히 숙지는 하지 못했지만 load, load_segment( ) 함수를 이해하는데 ELF 파일구조가 도움이 되었음 참고 자료 추후 다시 공부해볼 것 https://pu1et-panggg.tistory.com/32 ELF 파일 구조 ELF란? 실행 가능한 바이너리 또는 오브젝트 파일 등의 형식을 규정한 것이다. ELF파일 = ELF헤더 + 프로그램 헤더 테이블 + 섹션 헤더 테이블 오프젝트 파일은 세가지 종류가 있다. - pu1et-panggg.tistory.com https://doitnow-man.tistory.com/228 [ELF] 3. ELF header 분석 1. ELF Header의 역활 이 파..

[WIL] 컴퓨터 운영체제 'USER PROGRAMS' (pintos week2) - 작성 중

PINTOS week 2 수행과제 Pintos week2 수행 주제 - 'User program' 1주차까지 kernal thread만 다루었다. 이번 주차부터 user program 실행, 종료 및 주요 System call (system handler)등을 구현하며 시스템콜 작동 원리를 익힌다. 구현 과제 - argument passing / syscall handler / syscall / user memory access / denying writes executables WIL Key word Argument passing & x86-64 Calling Convention System call ( Syscall handler, Syscall, exception, register ) user mo..

[WIL] 컴퓨터 운영체제 'Thread' (pintos week1)

PINTOS 설명 및 수행과제 OS프로젝트는 PintOS의 코드를 직접 수정해가며 진행하는 프로젝트이다. PintOS는 2004년 스탠포드에서 만들어진 교육용 운영체제이다. 정글에서는 이를 기반으로 KAIST 권영진 교수님 주도 하에 만들어진 KAIST PintOS로 운영체제 학습을 시작했다. Pintos week1 수행 주제는 'Thread'이다. thread의 scheduling algorithm을 develop해가며 학습이 진행되었다. 처음에 기본으로 주어지는 pintos code는 정상적으로 작동하되 부분적으로 비효율적으로 구동하게끔 구성되어 있다. 비효율적으로 작동하는 부분들을 개선시키며 과제들을 PASS 시킨다. 총 3가지 문제로 구성되어 있으며 첫 번째 문제인 alarm clock문제를 해결..

OS review / Youngjin Kwon

강의듣다가 기록 Top school은 OS가 전필임 한국도 변화가 필요함. OS에서 하는일 예시 mmap (1mb) 예시 mmap 선언시 가상메모리에 할당만되고 실제 메모리에 할당되지 않는다. VM에 먼저 할당이 되고, 요청시 page fault가 나면서 할당이됨 memset 으로 1로 해당 영역 초기화할때 비로소 할당이된다. memset으로 2로 다시 초기화했을 때 더 빨리 할당이 됨 ( page fault가 없어서 ) (memset으로 2번째 실행시에는 cache hit 도 발생) 동일한 예시 mmap (1gb) - map size is way beyond cpu cache size! (1mb일때는 바로 cach에 다 올라갈 수 있었음) page와 cache를 이해하고 pagefault와 cache ..