본문 바로가기

정글33

[Project2] User Program(3) - Argument Passing https://github.com/Blue-club/pintos_5/issues/16 [Project 2-1] Passing the argument and creating a thread(mywnajsldkf) · Issue #16 · Blue-club/pintos_5 github.com 1. Argument Passing process_exec() 함수는 User program에서 입력한 명령을 수행할 수 있는 프로그램(=process)을 메모리에 적재하고 실행한다. 현재 문자열은 명령어에 대한 인자 passing이 제공되지 않은 상태이므로, 이를 구현해야 한다. 즉, 문장을 공백 기준으로 나누어 단어를 파싱하는 것이다. 예를 들어 bin/ls -l foo bar 라는 문장이 들어왔다면 첫번째 단어(b.. 2023. 6. 14.
[Project3] Virtual Memory(1) - Introduction OS는 적절한 동기화를 통해 여러 스레드를 적절히 처리할 수 있고, 사용자 프로그램을 한번에 로드할 수있다. 하지만 실행할 수 있는 프로그램 수와 크기는 컴퓨터의 기본 메모리 크기에 따라 달라진다. 이 과제는 가상 메모리(Virtual Memory)를 구축하여, 크기 제한을 제거한다. 과제 시작 전에 project2가 완벽하게 마무리되어야 한다. Background Source Files vm 폴더 참고!!! include/vm/vm.h, vm/vm.c virtual memory 기본 인터페이스를 제공한다. 헤더 파일에서는 가상 메모리 시스템이 지원하는 다양한 vm_ 유형(VM_UNIT, VM_ANON, VM_FILE, VM_PAGE_CACHE)를 확인할 수 있다. (VM_PAGE_CACHE는 proje.. 2023. 6. 14.
[크래프톤 정글] 70일 - half & half 오늘 한 일 👩‍💻 - 2주차 주간 발표 - 알고리즘 문제 풀이(프로그래머스 - 요격시스템, 15922) 알고리즘 알고리즘 실력이 많이 부족하다. 아직 코테에서 내가 만족한 결과를 얻지 못했다. 뭐 어쩌겠나!!!! 더 열심히 해야지... 그리고 충격적인 사실을 알았다. 최근 4일간 내가 잔디 심으려고 브론즈만 풀었다는 사실을...😵 그래서 다시 각성했다. (물론 나의 우선순위는 핀토스이지만 말이다!) 요격시스템 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programm.. 2023. 6. 13.
[크래프톤 정글] 67일 - 동료학습의 즐거움!🙃 오늘 한 일 👩‍💻 - 알고리즘(프로그래머스 - 달리기 경주) - 권영진 교수님 OS 강의(2) - Pintos 과제 (validate_address, exit, create ...) 알고리즘 https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 앞으로 매일 프로그래머스에서 꾸준히 한 문제씩 풀 예정이다. 오늘 푼 문제는 lv1이었지만, map 자료 구조를 떠올릴 수 있었다. 첫번째 시도는 이중 for문을 사용하여 교체되어야하는 index를 찾은 .. 2023. 6. 10.
[크래프톤 정글] 62일 - 즐거운 일요일☀️ 오늘 한 일 👩‍💻 - 알고리즘 문제 풀이(P3613 - Java vs C++) - Passing the argument and creating a thread 🧮 알고리즘 https://www.acmicpc.net/problem/3613 3613번: Java vs C++ Java 예찬론자 김동규와 C++ 옹호가 김동혁은 서로 어떤 프로그래밍 언어가 최고인지 몇 시간동안 토론을 하곤 했다. 동규는 Java가 명확하고 에러가 적은 프로그램을 만든다고 주장했고, 동혁이는 www.acmicpc.net 요즘 문자열 문제를 풀고 있다. 이 문제는 예외처리를 신경쓸게 많았다. ✍️ Passing the argument and creating a thread 핀토스 과제 2주차는 user program이다. 지금 하.. 2023. 6. 5.
[Project2] User Program(2) - Passing the argument and creating a thread: process_exec 함수의 뿌리를 찾아서... process_exec (void *f_name)는 현재 실행 컨텍스트를 f_name으로 바꾸는 함수이다. 이 과제에서 우리는 process_exec에서 호출하는 file을 로드하는 load() 함수에서 f_name을 통해 들어온 명령어를 잘 파싱하여 파일 명과 인자를 구분하는 작업을 해야한다. Argument Parsing을 구현하기 위해 process_exec가 어디에서 나왔는지 거슬러 쭉 올라가면 main함수이다. 한번 위부터 내려와보겠다. 🔎 코드 흐름 int main(void) (threads/init.c) /* Pintos main program. */ int main (void) { uint64_t mem_end; char **argv; /* Clear BSS and get machine's.. 2023. 6. 5.
[Project2] User Program(1) -Background Part2: User Programs 목표: 사용자 프로그램과 커널 프로그램을 시스템 콜을 통해서 소통하여 돌아가도록 한다. 주의할 점 userprog에서 작업을 시작해라. project1을 모두 끝내고 시작해라. #ifdef VM 안에 코드가 추가되면 안된다. → Project3의Virtual Memory Subsystem을 활성화하고 시작된다. Topic Parameter Passing System Call infrastructure File manipulation Background Project1에서 진행한 과정은 실행한 코드가 운영 체제 커널의 일부이다. 지난 과제에서 테스트 코드는 커널의 일부로 동작한 것으로, system의 권한 부분까지 접근할 수 있다. 만약 User Program을 OS에.. 2023. 6. 4.
[크래프톤 정글] 59일 - Pintos 1주차 끝! 오늘 한 일 👩‍💻 - Pintos Project1 주간 발표 - 알고리즘 문제 풀이(P9996 - 한국이 그리울 땐 서버에 접속하지) - 협력사 채용 설명회(당근마켓) 주간 발표 pintos 주차부터는 매주 코드 리뷰 방식이 아닌 주간발표로 진행된다. 전날에 모든 팀이 마지막까지 발표 자료를 만드느라 반 분위기가 무척 뜨거웠다🔥 우리 팀은 과제 설명과 경험했던 트러블슈팅 위주로 발표를 진행했다. 좋았던 점보다 아쉬웠던 점이 먼저 떠오르는데... 발표 시간을 고려해 발표 준비할 것 전날 컨디션을 조절해서 맑은 정신 상태로 발표할 것 발표 준비 시간을 줄이기 위해 미리 발생한 내용을 정리할 것 과제를 할 때, 고민하는 시간을 늘릴 것 이 정도인 것 같다. 다음 주차에는 이를 잘 반영해서 진행하고 싶다. 더.. 2023. 6. 2.
[크래프톤 정글] 50일 - 즐겁다! 오늘 한 일💪 - 알고리즘 문제 풀이(P15903 - 카드 합체 놀이) - tiny 서버 구현 알고리즘 P15903 - 카드 합체 놀이 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 입력 범위를 확인하자! 파이썬은 범위에 따라 자동으로 형변화를 해주지만 자바는 그렇지 않다. Tiny 서버 구현 https://github.com/Blue-club/webproxy-lab/issues/13 [Feat] Tiny - WebProxy(mywnajsldkf) · Issue #13 ·.. 2023. 5. 24.