일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 시스템콜
- 정보처리기사
- 소켓
- CSS
- 나만무
- 모션비트
- 백준
- 프로그래머스
- 사이드프로젝트
- 큐
- 스택
- 핀토스
- Java
- defee
- 크래프톤정글
- HTML
- 자바
- Vue.js
- TiL
- corou
- 4기
- JavaScript
- 크래프톤 정글
- 자바스크립트
- Flutter
- 리액트
- 알고리즘
- 코드트리
- pintos
- userprog
- Today
- Total
목록pintos (17)
문미새 개발일지
Krafton Jungle Week 8~9 Team 6 WIL Argument Passing project2의 메인인 시스템 콜을 만들기에 앞서 Argument Passing을 구현해야 했다. Argument Passing이란, main 함수로 들어오는 명령어를 구분하여 인자로 전달하는 것이다. 우선 init.c 안에 있는 main() 함수의 read_command_line() 함수가 커맨드라인으로 들어오는 인자를 받아와 저장한다. (예: -q -f put args-single run 'args-single onearg') 이 후 일차적으로 파싱을 통해 -q와 -f등의 플래그들을 제거한 후 남은 부분을 run_actions로 전달해준다. run_actions -> run tasks 등을 거쳐 args-s..
복습조이긴 하지만 지난 1.5주간 했던 userprog WIL은 작성하는게 맞다고 생각되어 팀 WIL을 작성했던 것을 블로그로 옮겼다. 이 후에는 다시 project 1 threads부터 쭉 복습하며 통과 못했던 테스트들도 통과시키는 게 목표다. https://moonmisae-cdpt.tistory.com/158 pintOS - Project 2 Userprog WIL Krafton Jungle Week 8~9 Team 6 WIL Argument Passing project2의 메인인 시스템 콜을 만들기에 앞서 Argument Passing을 구현해야 했다. Argument Passing이란, main 함수로 들어오는 명령어를 구분하여 인..

inode 파일 시스템에서 inode(index node의 줄임말)는 파일이나 디렉터리의 메타데이터를 저장하는 데이터 구조이다. 이 메타데이터에는 파일의 크기, 소유권(사용자 ID와 그룹 ID), 접근 권한, 파일 내용의 위치 정보, 생성 시간, 마지막 수정 시간, 마지막 접근 시간 등이 포함되며, inode는 파일의 실제 내용을 저장하지 않고, 파일의 속성과 파일 데이터가 저장된 디스크 상의 위치만을 가리키는 역할을 한다. inode의 특징 고유한 식별자 파일 시스템 내에서 각 inode는 고유한 번호로 식별되고, 이 번호를 통해 파일 시스템은 특정 파일이나 디렉터리의 메타데이터에 접근할 수 있다. 메타데이터 저장 inode는 파일의 소유자, 그룹, 파일 모드(읽기, 쓰기, 실행 권한), 타임스탬프(생..

32bit OS vs 64bit OS 32비트 OS와 64비트 OS는 컴퓨터 운영체제의 두 가지 주요 유형이며, 주로 데이터 처리와 메모리 관리 능력에서 차이를 보인다. 기본 개념 32비트 운영체제(32-bit OS) 이 운영체제는 32비트로 구성된 주소를 사용해 데이터를 처리한다. 즉, 한 번에 32비트(4바이트)의 데이터를 처리할 수 있다. 64비트 운영체제(64-bit OS) 이 운영체제는 64비트로 구성된 주소를 사용해 데이터를 처리한다. 즉, 한 번에 64비트(8바이트)의 데이터를 처리할 수 있어, 훨씬 더 큰 범위의 데이터를 빠르게 처리할 수 있다. 메모리 관리 32비트 OS 최대 4GB의 메모리(램)만을 직접 관리하고 사용할 수 있다. 이는 2의 32승(약 4.3억) 개의 주소를 할당할 수 ..
Introduction KAIST CS330의 핀토스 프로젝트에 오신 것을 환영합니다. 이번 학기에는 카이스트 CS330 과목에 적합하도록 특별히 수정된 핀토스 버전을 사용할 예정입니다. 이 수정된 버전은 기존의 핀토스와 일부 요구 사항이 다르기 때문에, 본 설명서의 지침을 우선적으로 따라야 합니다. 이전 핀토스 프로젝트를 참고할 수는 있지만, 업데이트된 프로젝트의 요구 사항에 맞춰 일부 기능을 재구현해야 할 수도 있습니다. 변경 사항으로 인해 교수님이 설명서를 업데이트해야 했습니다. 교수님이 수정된 버전과 설명서를 최대한 일치시키려 노력했지만, 동기화되지 않은 부분이 있을 수 있습니다. 이런 부분을 발견하시면 교수님께 바로 알려주시기 바랍니다. 또한, 법적 및 윤리적 문제에 대한 섹션은 반드시 확인하셔..
계속 쉬운것만 잔디를 심다보니 최근에는 올리지 않는게 더 나을 것 같아 pintos가 끝날 동안엔 잔디심기를 안 올릴 것 같다. %rdi 주로 첫 번째 인자 전달에 사용되며, 문자열이나 배열 같은 데이터의 목적지 주소를 지정하는데 사용된다. %rsi 두 번째 인자 전달에 사용되며, 문자열이나 배열같은 데이터의 원본 주소를 지정하는데 사용된다. %rdx 세 번째 인자 전달에 사용되며, 입출력 관련 시스템 호출에서 파일 디스크립터나 버퍼의 크기 등을 전달하는데에도 활용된다. %rcx 네 번째 인자 전달에 사용되며, 반복(loop) 카운트를 관리하는데에 사용될 수 있다. 또한 몇 명령어에서는 반복 횟수를 지정하는데 사용된다. %r8 다섯 번째 인자 전달에 사용되며, x86-64 아키텍쳐에서 새롭게 추가된 레지..
thread.c 더보기 // advanced scheduling 용도 //17.14 형식의 고정소수점 표현 #define P 17 #define Q 14 #define F (1 = 0 ? ((x + F/2)/F) : ((x - F/2)/F)) //고정소수점 기본 연산 #define ADD_FIXED(x,y) (x) + (y) #define SUB_FIXED(x,y) (x) - (y) #define MUL_FIXED(x,y) ((int64_t)(x)) * (y) / (F) #define DIV_FIXED(x,y) ((int64_t)(x)) * (F) / (y) #define ADD_INT(x, n) (x) + (n) * (F) #define SUB_INT(x, n) (x) - (n) * ..
Krafton Jungle Week 7~8 Team 6 WIL alarm-single 문제: timer_sleep이 기존에 구현되어 있었으나, Busy-wait을 하는 방식으로 되어있었기 때문에 효율이 좋지 않았다. 더보기 void timer_sleep (int64_t ticks) { int64_t start = timer_ticks (); ASSERT (intr_get_level () == INTR_ON); while (timer_elapsed (start) 더보기 void timer_sleep (..