728x90
반응형

정글 37

[크래프톤 정글 5기] 팀장으로서 나만무 프로젝트, 그리고 정글을 마무리하며..

https://poke-code.com 드디어 나만무 프로젝트가 끝이 났다. 나만무 기간 하루하루가 정말 너무나도 힘들었기에 도중에는 시간이 너무 느리게 가는 느낌이었지만, 막상 발표를 마치고 나니 이게 끝난 것인지, 아직 하고 있는 건지도 모를 정도로 실감이 나지 않았고 벌써 발표 후 이틀이 지나버렸다. 어떤 일이든 겪을 때는 힘들고 고난스럽지만, 끝이 나면 언제 그랬냐는 듯 편해지고 내가 겪은 일들과 얻어낸 성과가 당연한 것이 되어버리는 것 같다. 시간은 항상 매정하게 흐르고, 흘러가는 시간에 내가 무엇을 채워 넣었느냐에 따라서 미래가 결정된다. 하루하루 열심히 채워 넣으면 나도 모르게 높은 곳에 올라있을 것이고 그것이 당연하게 느껴질 것이며, 하루하루 무의미하게 보낸다면 나도 모르게 뒤쳐져 있을 것..

PintOS 프로젝트 3주차 중간 정리와 의문점들 ( TLB, Belady's Anomaly, Thrashing, Dirty Page, Supplemental Page Table )

페이지 테이블 접근 시 TLB가 어떻게 페이지 테이블의 성능을 향상시키는가?- TLB는 자주 사용되는 주소 변환 정보를 빠르게 참조할 수 있도록 하는 "캐시 메모리" 이다.- TLB에 원하는 주소 변환 정보가 있으면, 페이지 테이블을 참조하지 않고 바로 물리적 주소를 얻을 수 있어 성능이 향상된다. TLB Miss일 때 시스템은 어떤 과정을 거쳐 메모리에 접근하는가?- TML Miss일 때 시스템은 페이지 테이블을 조회하여 물리적 주소를 찾은 후, 추후 빠르게 접근할 수 있도록 정보를 TLB에 업데이트한다.   Belady의 역설(Belady's Anomaly)- 페이징 기법을 사용하는 메모리 관리 시스템에서, 프레임 수를 늘리는데도 page fault가 발생하는 빈도가 늘어나는 현상 Belady의 역설..

PintOS 프로젝트 3주차 키워드 정리 ( Virtual Memory, Page Table, TLB, Page Fault, Lazy Loading, PRP, DMA )

Virtual Memory물리적 메모리(RAM)의 제한을 극복하고 효율적인 메모리 관리 및 프로세스 격리를 위해 사용되는 중요한 개념 Virtual Memory 개념- 각 프로세스는 독립적인 가상 주소 공간을 갖는다. 이는 프로세스가 자신의 메모리 공간을 다른 프로세스와 공유하지 않고, 독립적으로 사용할 수 있도록 한다.- 가상 메모리와 물리 메모리는 모두 고정된 크기의 블록으로 나뉜다. 가상 메모리 블록을 "페이지" 라고 하고, 물리 메모리 블록을 "페이지 프레임" 이라고 한다.   Page Table가상 메모리를 물리 메모리로 매핑하는 데 사용되는 데이터 구조. 각 프로세스는 독립적인 가상 주소 공간을 가지며, 페이지 테이블은 이 가상 주소를 물리 주소로 변환(매핑)하는 역할을 한다. Page Tab..

PintOS 프로젝트 2주차 키워드 정리 ( User mode, Kernel mode, Register, Memory, System Call, File Descriptor, Cache, Atomic Operation, %rax, 32bit OS, 64bit OS, interrupt, Segmentation Fault )

User mode vs Kernel mode리눅스 운영체제는 User mode와 Kernel mode라는 두 가지 주요 실행 모드를 가지고 있다. 커널 모드(Kernel mode)- 운영체제의 핵심 부분인, "커널"이 실행되는 모드- 하드웨어에 대한 완전한 접근 권한을 가진다. -> 메모리, 프로세스 스케줄링, 파일 시스템 관리, 네트워킹 같은 low level 작업을 수행할 수 있다.- 시스템의 모든 자원을 제어할 수 있기 때문에, 커널 모드에서의 오류는 시스템에 심각한 영향을 미칠 수 있다.- 커널 모드에서는 시스템 모든 자원에 접근할 수 있는 광범위한 권한을 가지며, 따라서 커널 모드의 프로세스들은 메모리 공간을 공유한다. 사용자 모드(User mode)- 일반 응용 프로그램이 실행되는 모드- 커널..

PintOS 프로젝트 2주차 [User Programs / System Call] (2)

95개의 테스트 케이스 중 15개를 실패한 코드입니다. 주의해서 참고하세요.pass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userprog/args-manypass tests/userprog/args-dbl-spacepass tests/userprog/haltpass tests/userprog/exitpass tests/userprog/create-normalpass tests/userprog/create-emptypass tests/userprog/create-nullpass tests/userprog/create-bad-ptrpass tests/userprog/cr..

PintOS 프로젝트 2주차 [User Programs / System Call] (1)

95개의 테스트 케이스 중 15개를 실패한 코드입니다. 주의해서 참고하세요.pass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userprog/args-manypass tests/userprog/args-dbl-spacepass tests/userprog/haltpass tests/userprog/exitpass tests/userprog/create-normalpass tests/userprog/create-emptypass tests/userprog/create-nullpass tests/userprog/create-bad-ptrpass tests/userprog/cr..

[Baekjoon 2589 / Java / 골드5] 보물섬

L이 육지고 W가 바다이다.상하좌우 육지로만 이동할 수 있다고 했을 때, 보물지도 내에서 가장 먼 두 육지의 거리를 출력하면 된다.물론 두 육지의 거리는 최단거리여야 한다. import java.io.*;import java.util.*;public class 보물섬_2589 {    // 입력값 저장할 변수, 4방향 탐색할 dx dy 선언    static int N, M;    static char[][] maps;    static int[] dx = {-1, 1, 0, 0};    static int[] dy = {0, 0, -1, 1};    public static void main(String[] args) throws IOException {        BufferedReader br =..

Algorithm/BFS 2024.05.31

PintOS 프로젝트 3주차 발제 후 티타임 / 이력서와 면접에 관한 팁들

자기소개서- 좋은 스토리텔링 만들기- 포트폴리오나 작업물에 대한 트러블 슈팅 과정 설명- 팀 작업이라면 내 역할에 관한 확실한 이해- 이런거 저런거 해봤다 구구절절 말하기 X, 나의 성장에 관해 큰 틀로 스토리텔링 만들기.  어차피 자잘한 거 해본 건 면접관에게 크게 중요한 점들이 아니다. 이력서를 최대한 많이 내고, 면접 경험을 최대한 많이 가져봐야 한다- 크게 가고싶지 않은 회사라도 최대한 많이 지원하기- 이력서를 조금씩 수정하여 여기저기 내 보면서, 어떤 식의 이력서가 먹히는지 파악할 수 있다.- 면접도 마찬가지로, 여기저기 면접을 다녀 보면서 어떤 말을 어떤 식으로 하면 면접관에게 어필이 되는지 파악하고 성장해 나갈 수 있다.- 1승만 하면 된다. 한 번만 붙으면 된다. 합격 확률을 조금이라도 높..

PintOS 프로젝트 2주차 커널 모드, Context Switching, fsync()

1.1 커널 모드에서 실행될 수 있는 작업-> 공유 자원 관리- 공유 자원 관리는 운영체제의 중요한 기능 중 하나로, 주로 커널 모드에서 실행된다.- 파일시스템, 메모리, 프린터 등과 같은 자원은 여러 프로세스에 의해 동시에 요청될 수 있기에, 접근과 사용을 적절히 관리하는 것이 필수적이다.- 커널 모드는 이러한 자원들에 대한 접근을 제어하고 충돌/데이터 손상을 방지한다. 1.2 공유 자원 관리가 사용자 모드에서 실행되지 않는 이유- 여러 사용자 또는 프로세스가 자원에 직접 접근할 경우, 데이터의 일관성과 안정성이 위협받을 수 있기 때문이다.  2. 운영체제에서 Context Switching이 발생하는 과정에서 어떤 정보가 저장되고 복원되는가?- 현재 프로세스의 상태(Context, 문맥)를 저장하고 ..

PintOS 프로젝트 2주차 [User Programs / Argument Passing]

PintOS는 Command Line에 명령어를 받아 프로그램을 실행할 때, 인자를 인식하지 못한다.ex ) /bin/ls -l foo bar  일 경우, 명령(파일명)과 인자를 나누지 못하고 전부 하나로 인식 Argument Passing은 PintOS의 이러한 점을 개선하여 PintOS가 명령에 대한 파일명과 인자를 구분하여 받을 수 있도록 하는 것이 목표이다. 명령어와 인자들은 command Line으로 입력된 후 process_exec 함수에서 argv 배열에 저장되며, argc 변수엔 인자의 개수가 저장된다. (파일명도 인자다)argv, argc를 이용하여 인자들은 Stack에 저장되어 User Program이 사용하게 되는데, 우리가 Stack에 저장되도록 구현해야 한다.  %rsp는 스택 포..

728x90
반응형