본문 바로가기

분류 전체보기111

[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.
프로그래머스: 요격 시스템(lv2) - 문제: https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 끝나는 구간을 오름차순으로 정렬하고, 범위에 대해 가장 뒤쪽에 요격하여 범위의 최대를 확인한다. target 구간을 순회하면서, last가 두 구간 사이라면 무시해도 되므로 다음 구간으로 넘어간다. 왜? 시작 지점 정렬은 필요하지 않는가 어차피! target 구간은 순회하면서 last가 두 구간 사이인지 아닌지만 확인하기 때문이다. 우리의 목표는 last(현재 요격 범위의 마지막.. 2023. 6. 12.
[크래프톤 정글] 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.
개발 환경 구축 시, 환경 변수 설정하기 pintos 과제를 하다 보면 다음과 같이 pintos 프로젝트의 환경 설정 파일인 activate 파일을 적용해야 한다. // home/ubuntu/pintos source ./activate 그런데 매번 터미널을 열 때마다 하는 것은 너~무 귀찮다.😵 자신이 사용하는 셸의 환경 설정 파일을 수정하여, 초기 설정을 해두자. 1. 설정 파일 열기 터미널에서 vim 에디터를 이용하여 설정 파일을 연다. vim ~/.bashrc// bash shell을 사용하는 경우 vim ~/.zshrc// zsh shell을 사용하는 경우 2. 실행 코드를 추가하기 설정 파일에 activate shell이 있는 경로와 함께 해당 스크립트를 실행하는 코드를 추가한다. (파일 경로는 pwd 명령어를 통해 확인할 수 있다) .. 2023. 6. 9.
[크래프톤 정글] 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.