728x90 분류 전체보기115 [pintos] Project 1_priority scheduling [pintos] Project 1_priority scheduling 전체적인 흐름을 이해하기 위해서는 header file에 구현되어 있는 구조체와 멤버 그리고 구조체를 파악하는 게 도움이 된다. thread.h struct thread { /* Owned by thread.c. */ tid_t tid; /* Thread identifier. */ enum thread_status status; /* Thread state. */ char name[16]; /* Name (for debugging purposes). */ int priority; /* Priority. */ /*-------Project 1, priority_donation------*/ int init_priority; // thre.. 2021. 10. 4. [pintos] Project 1_alarm [pintos] Project 1_alarm pintos는 기본 기능들만 구현된 작은 운영체제이다. 마치 tiny web server처럼 이 운영체제에는 실행중인 스레드를 잠시 재우고 다른 스레드에서 진행하는 하는 기능이 있는데, 처음에는 busy waiting 방식으로 구현되어 있다. 이를 Sleep / Awake로 구현하는 것이 첫 번째 과제이다. Busy waiting 구현 busy waiting은 매 시간 자고 있는 스레드를 깨워 시간을 확인한 후 아직 깨울 시간이 안됐으면 다시 재운다. 이를 계속 반복하다 꺠어날 시간이 되었을 때 깨우는 방식이다. 이는 매우 비효율적인 방식으로 많은 CPU 시간을 낭비한다. busy waiting은 아래와 같이 구현되어 있다. thread_yield 함수로 sc.. 2021. 10. 4. [PintOS] 로딩 (Loading) [PintOS] 로딩 (Loading) 1. Loader 로딩(Loading) : pintos 첫 실행시 진행되는 부팅의 과정이다. 부팅(Booting) : 컴퓨터를 구동하여 기초적인 초기화 작업을 수행하고 운영 체제를 읽어오는 일련의 작업이다. 로더(Loader) : 부팅 작업을 진행하는 프로그램. Disk의 첫 번째 섹터에 저장되어 있다. 1) BIOS(ROM에 있음)가 로더(Loader)를 메모리에 로드(Load) 한다. BIOS는 컴퓨터가 구동된 후 저장 장치(Disk)의 첫 번째 섹터를 탐색해여 이 장치가 부팅 가능한지 검사한다. (BIOS : Basic Input/Output System 입출력 처리 펌웨어) Sector : 저장 장치(Disk)에서 데이터를 저장하는 최소 단위로, 한 섹터의 .. 2021. 10. 4. [PintOS] 디버깅 도구(Debugging Tool)_printf, ASSERT, __attributes__, backtraces [PintOS] 디버깅 도구(Debugging Tool)_printf, ASSERT, __attributes__, backtraces Printf 코드 사이사이에 printf 함수를 넣어 출력을 통해 디버깅 할 수 있다. 간단하지만 효과적인 방법 ! ASSERT 표준 c library 중 하나인 assert.h 에 있는 매크로이다. pintos 에서는 에 구현되어 있다. /* NDEBUG는 디버그 모드가 아닌경우(릴리즈 모드)를 말한다.(Not DEBUG) * #ifndef는 매크로가 정의되지 않은 경우에만 코드를 컴파일 함. * ASSERT 매크로는 조건이 맞지 않을 때 프로그램 중단 */ #ifndef NDEBUG #define ASSERT(CONDITION) \ if ((CONDITION)) { }.. 2021. 10. 3. 21/10/02(토)_ 운동 일지 21/10/02(토)_운동 일지 얼마만에 글을 쓰는지 모를 정도로 오랜만이다. 컴퓨터 시스템 내용 들어오면서부터 바빠졌는데 OS project 주차에 오니 더욱 굉장히 할게 많다. 하지만.. .점점 더 즐겜러가 되어가는 낑깡... 어제 2시에 불고기버거 세트를 먹고 4시에 자서 그런지 오전에 좀 피곤했다. 점심 후 정신을 차리기 어려워 오랜만에 체력단련실. 저번 글에서 텐션 낮을 때는 최고 120, 최저 60정도라고 했는데, 이것보다 더 낮게 나온거 보니 확실히 혈압이 낮으면 집중하기 힘든 게 맞는거 같다. 하체 운동을 해서 혈액순환을 원할히 하면 좋을 것 같은데 다리로 무식하게 미는 운동보다 조정이 더 재밌을 것 같아 요즘은 조정을 깔짝깔짝 하고 있다. 어쨌든 잠 깨는 데 운동의 효과는 확실한걸로 ! .. 2021. 10. 3. [OS운영체제] 권영진 교수님 OS 강의 (카이스트 전산학부) [OS운영체제] 권영진 교수님 OS 강의 (카이스트 전산학부) 키워드들 위주로 작성. 이후 검색해 볼 것 CS 에서 system 특히 Operating system이 전공필수가 되었다. 그만큼 중요하다. OS 시스템을 공부해야하는 이유가 뭘까?를 아는 게 공부하는 데 도움이 된다. 1. - mmap : 1MB 쓰겠다고 선언을 해도 실제로 주진 않는다. 가상 메모리에다가 allocation만 해준다. - memset으로 1로 채운다. 이 때 메모리를 준다. - on-demand allocation - 1MB에 4KB 씩 PA(RAM)에 page를 줌 - 처음 memory(Physical address) 접근시 page fault, 그 이후 할당 되고 2차 접근시 page fault 안남. 하지만 사용자 입.. 2021. 10. 1. 이전 1 ··· 9 10 11 12 13 14 15 ··· 20 다음 728x90