개발 61

컴퓨터 시스템/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주차와 마찬가지로 책에서 관련내용을 읽고 처음에 상황을 이해하는데 초반 몇 일을 소모했다. 많이 어려웠지만 늘 그랬듯이 시간을 갈아넣어서 그래도 많은 공부가된 것 같다. 아직도 배워야 할 것들이 너무 많기 때문에 핀토스 메뉴얼이나 개념 설명글을 작성하는데에 시간을 많이 쓰고 싶지 않다. 단..

11 - 13 주차 에세이 운영체제 (Pintos)

정글의 마지막 커리큘럼이 이제 마무리되어간다. 오늘부로 Pintos의 Thread / Userprogram / Virtual Memory 까지 마무리되었다. File system이 남았다. 핀토스는 CS에서 꽤 악명높은 수업이라고 들었는데, 어려운 만큼 배운 부분이 많았다. 핀토스를 하면서 들었던 생각인데, 컴퓨터 전공자도 OS를 책으로만 공부한 사람과 핀토스 프로젝트를 병행하여 학습한 학생의 운영체제에 대한 이해도 차이가 꽤 많이 나겠다는 생각이 들었다. OS를 책으로 읽어서 아는 것과 눈으로 보고 각종 테스트 케이스에 영혼까지 탈탈 털리면서 구현하고 이해해보는 것은 다르기 때문이다. 이러한 이점 때문에 많은 학교들에서 교육자료로 핀토스를 채택하는 것 같다. 짧은 후기를 남기자면, CS를 입문 단계에서..

A 2021.10.28

소수경로 (백준 파이썬 BFS , 문자열)

https://www.acmicpc.net/problem/1963 1963번: 소수 경로 소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데: “이제 슬슬 비번 바꿀 때도 됐잖아” “응 지금 www.acmicpc.net 알고리즘을 너무 안 풀었더니 너무 오랜시간동안 붙잡고 풀었다. 소수판별하는 방법은 은근히 자주 보이는 것 같다. 제대로 숙지할 필요가 있어보인다. 애먹은 부분 문자열에서 특정 인덱스 변경하는 것은 C가 오히려 쉬운 것 같다. list( ) / join( ) 을 사용하는 방법과 slicing을 하는 두가지 방법이 있다. https://pythonexamples.org/python-string-replace-..

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..

[스크랩] stack & stack frame / 호출규약

https://m.blog.naver.com/tjdghkgkdl/10117550708 Stack & Stack Frame ㅁ 개요 - 스택(stack) 은 사전적으로 '더미, 퇴적'을 의미한다. IT 분야에서 정말 안 들어본 사람이 없... blog.naver.com https://it-eldorado.tistory.com/37 [CSAPP] x86-64 - Procedures 1. 스택 (Stack) 1-1. x86-64 스택 스택(Stack)은 Stack Discipline에 의해 관리되는 메모리 영역을 말한다. Stack Discipline이란 스택을 관리하기 위한 일종의 규율과 같은 것이다. 예를 들어, x86-64에서는 %rs.. it-eldorado.tistory.com https://m.bl..

[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 ..

7주차 종료 8주차 시작

후 시간 빠르다. 6주차에 집중이 어렵고 공부가 잘 되지 않았는데, 추석연휴와 7주차에 다시 마음을 잡았고 극복이 된 것 같다. 7주차에 웹프록시, tiny 서버 구현으로 소켓프로그래밍의 기본과 동시성 서버 구현을 하며 여러 개념을 습득했다. 사실 과제나 도전과제보다는 csapp책을 많이 읽을 수 있어서 좋았다. 정리할 키워드 : WEEK07: BSD소켓, IP, TCP, HTTP, file descriptor, DNS + (동시성 프로그래밍, 프록시, 웹 캐시)

A 2021.09.28