일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- defee
- 크래프톤 정글
- 큐
- 자바
- 시스템콜
- 백준
- 리액트
- corou
- 코드트리
- Vue.js
- 알고리즘
- pintos
- 스택
- Java
- JavaScript
- Flutter
- 크래프톤정글
- 나만무
- 4기
- 정보처리기사
- HTML
- 프로그래머스
- 핀토스
- 자바스크립트
- 모션비트
- TiL
- 사이드프로젝트
- CSS
- 소켓
- userprog
- Today
- Total
목록핀토스 (11)
문미새 개발일지
process.c 더보기 // 명령줄 인자를 스택에 배치한다. void argument_stack (char **argv, int argc, struct intr_frame *if_){ int minus_addr; int address = if_->rsp; // 스택 포인터(rsp)의 현재 위치를 담는다. // 인자를 거꾸로 넣기 위해 마지막부터 루프 for (int i = argc-1; i >= 0;i-- ){ // 현재 인자의 길이 + '\0'(1개)를 minus_addr에 저장 minus_addr = strlen(argv[i]) + 1; //if onearg, value = 7 address -= minus_addr; // 인자 크기만큼 address를 감소시켜 저..
syscall.c 더보기 #define MSR_STAR 0xc0000081 /* 세그먼트 셀렉터 MSR, 64비트 모드로 전환할 때 사용되는 셀렉터를 저장 */ #define MSR_LSTAR 0xc0000082 /* 롱 모드 SYSCALL 목표 주소를 저장하는 MSR */ #define MSR_SYSCALL_MASK 0xc0000084 /* 실행 시 EFLAGS 레지스터에 적용될 마스크를 저장한다. */ MSR_STAR (0xc0000081) : 시스템 콜이나 리턴 시 CS와 SS 세그먼트 레지스터를 로드하는데 사용 MSR_LSTAR 0xc0000082 : 64비트에서 syscall 명령어가 실행될 때, CPU는 이 레지스터에 저장된 주소로 점프MSR_SYSCALL_MASK 0xc00..
Advanced Scheduler 멀티레벨 피드백 큐 스케줄러를 구현하여 시스템에서 실행 중인 작업의 평균 응답 시간을 줄여야 하며, 이 스케줄러는 4.4BSD 스케줄러와 유사하다. 우선순위 스케줄러와 마찬가지로, 고급 스케줄러도 우선순위를 기반으로 스레드를 선택한다. 하지만, 고급 스케줄러는 우선순위 기부를 수행하지 않기 때문에, 우선순위 기부를 제외하고 우선순위 스케줄러가 작동하고 있음을 확인한 후에 고급 스케줄러 작업을 시작하는 것이 좋다. Pintos 시작 시 스케줄링 알고리즘 정책을 선택할 수 있도록 코드를 작성해야 한다. 기본적으로 우선순위 스케줄러가 활성화되어 있어야 하지만, -mlfqs 커널 옵션을 통해 4.4BSD 스케줄러를 선택할 수 있어야 한다. 이 옵션은 main() 초기에 pars..
https://moonmisae-cdpt.tistory.com/160 Pintos-kaist Guide - PROJECT 1: THREADS - Introduction Project1: Threads 이번 과제에서는 최소한의 기능만 있는 스레드 시스템을 제공합니다. 여러분은 이 시스템의 기능을 확장하여 동기화 문제에 대한 이해도를 높여야 합니다. 주된 작업 디렉토리는 t moonmisae-cdpt.tistory.com https://moonmisae-cdpt.tistory.com/161 Pintos-kaist Guide - PROJ..
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 함수로 들어오는 명령어를 구분하여 인..
오전 10시에 발표 끝나고 팀이 변경되며 다시 자리가 재배치 되었다. 1팀은 복습조 나머지 팀은 프로젝트3 팀인데 본인은 복습조에 들어가서 1팀으로 배정 1팀 인원은 현우, 세진, 상림 성준 4명인데 4명 팀은 처음이다보니 한 명이 2인 팀과 같이 앉는 방식으로 자리배치를 했다. 자리를 다 옮기고 1팀끼리 어떻게 복습할건지, 어디서부터 복습할건지 각자 논의했는데 세진이는 프로젝트 1 mlfqs만 직접 작성한 후 개념 정리하고 바로 시스템 콜 넘어간다고 하고, 현우님과 상림이형은 프로젝트 1부터 처음부터 다시 코딩부터 시작한다고 하고, 본인은 아마 프로젝트 1은 개념으로 넘기고 2인 시스템 콜 부분부터 하드코딩 할 것 같다. 근데 애경관에서도 복습조가 나왔다. 코치님이 오실 땐 전부 다 애경관으로 모여서 ..

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