본문 바로가기

Review/SW Jungle35

[WEEK10] Pintos _ Project2 User Program (2.2) System Calls 0. 시작하기 전에 예전 직장에서 법이나 규정을 많이 보다보니 꽤나 오랜 시간을 단어나 용어의 정확한 정의나 의미 파악을 중점적으로 공부하고 일을 수행해왔다.. Abstraction으로 가득찬 프로그래밍 세계에서는 이런 공부방법이 좋지 못하다는 것을 시간이 지나면서 점점 깨닫고 있다. 🥲 물론 용어에 대한 정확한 파악도 중요하지만 개념파악 외에도 코드 구현 또한 매우 중요하다! 앞의 Argument Passing이나 File System 구현은 메뉴얼에서 시킨대로, 코드를 잘 짜면 구현이 가능하나 (물론 구현이 쉽지는 않다.) fork, wait, exec부터는 각 코드들의 유기적 관계와 코드가 어디서 어떻게 움직이는지 알아야 이해력 높은 구현이 가능한 것 같다. (Project를 마치는 지금 시점에도 .. 2022. 11. 29.
[WEEK10] Pintos _ Project2 User Program (2) System Calls 1. 프로젝트 관련 공부 Pintos Project2 Pintos에서 User Program을 실행시켜라! (Argument Passing, System Calls 등) 우리 과제는 프로그램을 실행시키기 위해서 아래와 같은 항목들의 일부를 수행하는 것으로 보인다. 2. 코드 구현 우리조는 조금 더 구현이 쉬울 것 같은 File Descriptor 부분을 먼저 수행하고 fork, exec, wait으로 넘어갔다. 두번째 미션 : System Calls 관련함수 : create, remove, open, filesize, read, write, seek, tell, close 등 Pintos에는 File Descriptor 부분이 누락되어 있다. File Descriptor Table을 구현하고 FD를 활용.. 2022. 11. 29.
[WEEK09] Pintos _ Project2 User Program (1) Argument Passing 1. 프로젝트 관련 공부 Pintos Project2 Pintos에서 User Program을 실행시켜라! (Argument Passing, System Calls 등) 우리 과제는 프로그램을 실행시키기 위해서 아래와 같은 항목들의 일부를 수행하는 것으로 보인다. 2. 코드 구현 첫번째 미션 : Argument Passing 관련함수 : process_exec / load / argument_stack 첫번째로 풀어야할 문제는 Argument Passing이다. 유저프로그램을 실행하기 전 커널은 레지스터에 argument를 저장해야한다. f_name 문자열로 인자값을 받아오나 해당 인자에 대한 passing을 제공하지는 않는다. 인자값을 parsing 하여 스택에 올림으로써 파일 실행에 대한 준비를 하는.. 2022. 11. 29.
[WEEK08] Pintos _ Project1 THREADS 1. 프로젝트 관련 공부 Keywords : Context Switching, Process, Threads, Scheduler, Timer Interrupt, Synchronization Context "프로세스는 실행중인 프로그램이다.(Process is a program in execution)" 프로그램의 문맥이란 현재 시점에서 CPU의 수행상태를 나타내줌 즉 프로세스의 현재 상태라고 볼 수 있음 프로세스는 사람으로 치면 키는 몇이고, 몸무게는 얼마나 되고, 지식은 얼마나 있나로 볼 수 있음 컴퓨터에서는 Context를 위해 필요한 것이 총 3가지인데 1. 하드웨어 문맥 : Program Counter, Register 2. 프로세스의 주소공간 (Code, Data, Stack 영역에 무엇이 있는.. 2022. 11. 17.
[WEEK05~07] 복기와 공부한 것들 복기 지나가버린 일주일은 아쉬웠고, 다가올 일주일을 위해서 매번 마음을 다시 다졌다. 블로그에도 '글을 써야겠다.' 라는 마음을 항상 품고 있었지만 쌓여있는 할 일들과 채워나가야하는 공백들 속에서 글을 쓰는 일은 매번 뒷전으로 미뤄졌다. 5주차에서 7주차는 지난 4주와는 다르게 조금은 새로운 시도들을 해보고 싶었다. 공부방법이나 생활패턴에 조금씩 변화를 줘가면서 어떤 것이 더 좋은지 비교해보고 싶었다. 어떤 한 주는 답안을 보지 않고 혼자의 힘으로 코드를 짜보기 위해서 고군분투해보았고, 다른 한 주는 팀원들과 함께 코드를 짜는 경험을 해보았다. 생활패턴은 조금 더 건강하게 가지기 위해 잠을 조금 더 늘리거나 조금이라도 더 건강한 식단을 유지하기 위해 노력했다. 실력을 쌓아나가야할 것 같다. 힘 빼기 운동.. 2022. 11. 14.
[WEEK04] 다이나믹 프로그래밍 & 4주차 복기 다이나믹 프로그래밍 1. 특징 - 컴퓨터 연산속도의 한계 + 메모리 공간을 사용할 수 있는 데이터 개수의 제약 - 연산속도와 메모리 공간을 최대한으로 활용할 수 있는 효율적인 알고리즘이 필요 ⇒ 메모리 공간을 약간 더 사용하면 연산속도를 비약적으로 증가시킬 수 있음 ⇒ 동적프로그래밍 (≠ 동적할당) - 큰 문제를 작게 나누고 같은 문제라면 한번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 - 주어진 문제를 나눌 때 부분 문제를 최대한 많이 이용하도록 나눈 다음, 주어진 부분 문제의 정답을 한번만 계산하고 저장해둔 뒤 다시 한번 이 부분 문제를 이용할 때에는 저장해둔 정답을 바로 산출하여 이용함으로써 속도를 향상시킴 다음 조건을 만족할 때 사용할 수 있음 - Overlapping Subproblems (겹.. 2022. 10. 30.