전체 글 91

[Pintos] project1: Threads 플로우 차트

Introduction · GitBookNo results matching ""casys-kaist.github.io  GitHub - casys-kaist/pintos-kaistContribute to casys-kaist/pintos-kaist development by creating an account on GitHub.github.com Thread Life cyclemain 함수에서 thread_init () 함수를 실행하면default thread 인 main thread가 하나 생성됩니다. 이후thread_start () 함수를 통해 스레드 스케쥴러가 작동하기 시작합니다.따라서 이 함수를 통해 스레드의 라이프사이클의 시작을 확인해볼 수 있습니다. thread_start 함수는 다음과 같은 ..

OS/PintOS 2024.09.03

PintOS 프로젝트 - 프로그램 이해를 위한 플로우 차트 그리기

핀토스에는 OS를 본뜬 정말 많은 프로그램이 존재한다. main 프로그램에서thread 사용을 위한 초기화 작업을 진행하거나,각 메모리 사용을 위한 초기화 작업을 진행한다. 또한 각 챕터별 과제에서 사용할 기능 및 장치도고유한 프로세스 플로우가 존재한다. 그런데 인터넷에서 구할 수 있는 자료는 전부 다 소스코드로만 이뤄져 있어서,각 과제를 제대로 이해하기 위해서는코드를 보고 플로우 차트를 직접 그려야 한다 생각했다. 그래서 여러 플로우 차트 중, 시스템 플로우 차트를 사용해각 기능들을 이해해보려고 한다. 플로우차트어떤 일을 처리하는 과정을 간단한 기호와 화살표로 도식화한 그림.주로 컴퓨터 프로그래밍에서 프로그램이 돌아가는 과정을 그림으로 나타낼 때 사용되는 일종의 블록선도이다.   각 단계는 정해진 다이..

OS/PintOS 2024.09.03

'나' 전달법

의사표현 방식에 대한 고민을 담은 글입니다.  들어가며최근 가장 가까운 사람과 말다툼을 했습니다. 다행히 화해하며 잘 마무리했다 생각되나돌이켜보건데 제 화법에 문제가 있음을 알게되었습니다. 서로 크게 다툴것이 아니었는데도점점 제 감정이 커지며 결국에 감정적으로 다투게 되었는데,상황을 더욱 악화시키는 원인 중 하나는 사소하게 여겨지는 '말 표현 방식'에 있었습니다. 당시에 제 나름대로 최대한 차분하게 감정표현을 하거나제가 생각하는 걸 받아들이기 편하게 정제해서 설명한다고 생각했습니다. 그러나 결국 '너(타인)'을 주체로 두어 표현했기 때문에상대방은 마치 제가 그를 규정하는 것처럼 들렸을 것입니다.조금 과감하게 표현하자면 마치 가스라이팅을 하는 것처럼 들렸을 지도 모릅니다. 당연히 이럴 의도가 아니었는데그렇..

사람 2024.09.02

24년도 7월 해커톤 회고

들어가며AWS에서 지원하는 해커톤에 참여했습니다. 학부생 수준의 서비스를 무리없이 구현 가능한 범위 내에서AWS의 서비스를 지원해주는 좋은 해커톤이었습니다. 이번 해커톤은기술 관점에서 AWS로 서비스를 구현해보았다는 점에서 좋았으나,서비스 관점에서 많은 아쉬움이 남았습니다. 제가 제안 했던 최근 아이디어 중 가장 좋은 아이디어였고,중간 평가에서 심사위원을 포함한 사람(예비 서비스 이용자)들의 좋은 반응을 얻었지만 끝끝내 최종 발표에서 저희 팀의 제안을 설득시키지 못했고심지어 시연 중 프론트 페이지가 렌더링되지 않은 참사가 발생해더욱 아쉬웠던 것 같습니다. 발표에도 아쉬움이 남았습니다.발표자가 저였는데, 무박 2일 밤샘 해커톤임에도 불구하고"그래도 잘 할 수 있겠지"라는 미련한 생각으로체력관리를 하지 않았..

회고 2024.08.23

4-2 막학기 전, 반 년 휴학을 하는 이유

프로젝트란 무엇인가 특정 목표를 달성하기 위해 하는 일련의 행위이다 그러나 지금까지 내가 진행한 프로젝트는 어떤 비즈니스적이거나 혹은 사회적 의미가 있는 목표를 달성하기 위해서 보다 기술을 경험해 보기 위해 진행했던 것만 같다 기술 경험이라 해도, 한 번 코드 복사해서 붙여넣고 실행해보고 끝 이런 느낌만 남는 것만 같다 —-9/11추가 뭐든 엄청 깊게 파지 않으면 대충했다는 느낌만 남는다 깊게 파야 제대로 알고있는 것 같은 느낌이 들어서 휴학을 하고 시간을 들여 여러가지를 깊게 파려고하는 것이다 —- 반년 넘게 고민한 결과 이는 프로젝트 수행 도중 의사결정을 내릴 때마다 고민을 깊게 하지 않아서 그런 것같다 라고 결론내렸다. 고민의 흔적을 남기지 않아서 이렇게 보이는 것 같기도 하지만 결과적으로 내가 고..

일기장 2024.08.22

print("hello world!")는 사용자 화면에 어떻게 출력되는 걸까?

리눅스 strace 명령어를 통해, "hello world"를 출력하는 코드가 어떤 시스템 콜을 호출하는 지 알아보려 합니다.  hello world!  프로그래밍에 입문한 사람이라면 가장 처음 보는 문장입니다."컴퓨터의 세계에 온 것을 환영한다"는 의미입니다. 컴퓨터 엔지니어가 되고싶은 사람이라면위 문장을 화면에 출력해줄 여러 함수를 조합해가며첫 프로그램 파일을 작성했을 것입니다. 이런 출력 코드 작성은프로그래밍 언어의 문법, 문맥을 잘 살펴볼 수 있는 좋은 예시이기도 합니다.간단한 코드 작성으로 내가 원하는 문장을 출력해보는 경험을 할 수 있으니까요. 음... 그런데 저는 OS를 공부하던 중 문득 이런 생각이 들었어요.   진짜 간단할까? 아래와 같은 python 스크립트를 작성해 실행시켰다고 생각해..

OS/Linux 2024.08.21

24년도 8월 클라우드 플랫폼 팀 모의 면접 회고

모 회사 클라우드 플랫폼 팀 모의 면접에 대한 회고를 담은 글 입니다.    들어가며좋은 기회로 클라우드 보안 솔루션을 운영하는 회사의 모의면접을 보게되었습니다. 클라우드 플랫폼, 백엔드, 코어 팀의 각 팀장님 께서 면접을 봐주셨습니다.   모의 면접 정보일 대 다면접 20분,역질문 10분   모의 면접 회고 5F 회고5F 회고는 Facts(사실), Feelings(느낌), Findings(발견), Future Actions(향후 행동), Feedback(피드백)의 다섯 가지 요소로 구성되어있습니다. 짚고 넘어가야할 각 경험마다 해당 양식을 따라 회고를 진행했습니다. 자기소개Facts(대답)데이터 엔지니어링에 생긴 관심 -> 분산처리 프로젝트로 시작 -> 도커를 사용하다 인프라에 관심이 생김 -> AWS..

회고 2024.08.18

[DP] 피보나치 수열과 예제로 알아보는 DP

* 복습 겸 기록을 위해 작성한 포스트 입니다. 1. DP란, 결국 완전탐색의 일종이다. 또한 점화식을 만들 수 있어야 한다. N번째 값에 대한 어떠한 연산이 N-1 값에 대한 동일한 연산, N-2 값에 대한 동일한 연산으로 나뉠 수 있어야 한다. 어떠한 연산을 함수 f(N) 이라고 하면, f(N) = a1 * f(N-1) + a2 * f(N-2) + ... (for 임의의 상수 a1, a2,...) 형태로 표현되어야 한다. 이렇게 생각해볼 수 있는 문제들을 풀때 Dynamic Programming 기법을 사용하는 것이다. 2. DP의 조건 1. 참조 투명성을 가져야 한다. 2. 겹치는 부분 문제(연산)가 존재해야 한다. 3. 최적 부분 구조를 가지고 있어야 한다. 1번 조건인 참조 투명성은, 문제를 해..

알고리즘 2024.02.23