728x90

분류 전체보기 209

User mode vs Kernel mode

운영체제와 사용자 프로그램은 하드웨어, 소프트웨어 자원을 공유함에 따라 올바른 실행 보장을 위해 유저와 커널 모드로 구분할 수 있습니다.보통 유저 모드에서 프로세스를 동작하고, 특정 상황(예외처리 등)의 경우 시스템콜에 의한 TRAP을 통해 커널 모드에서 처리한 후에 유저 모드로 전환되어 프로세스 과정을 마칩니다.사용자 모드 (User Mode)보호 모드라고도 함.하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용하지 못함.응용 프로그램이 해당 모드로 동작합니다.커널 모드 (Kernel Mode)수퍼바이저 모드, 시스템 모드, 특권 모드 라고도 함.하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용 가능.운영체제가 해당 모드로 동작합니다.모드 구분 방법커널 모드인지 사용자 모드인지는 모드 비트(mod..

WEEK 10 PintOS TIL(5월19일 월요일)

[목표]정글에서 제공하는 키워드 공부 / 정리하기(중단)코드 파일들 전체 번역하기아침에 유저 커널모드 정리하기, 졸리면 번역 먼저 시작, 안졸리면 키워드 정리09:50 ~ 12:00이번주는 퀴즈가 없다. 그러므로 프로젝트에 좀 더 집중을 해야한다. 본래의 키워드를 공부하기 보다 빠르게 코드 작성을 해보고, 모르는 부분만 다시 확인을 해보겠다. 먼저 번역을 진행중이다.12:00 ~ 13:30식사 후 휴식을 가졌다. 너무 졸려서 30분 좀 넘게 잠을 잤다. 4시30분쯤 자서...13:30 ~ 16:00아까 다 못한 번역을 실시하고 있다. 겸사 겸사 코드의 이해도 진행중이다. process.c의 코드가 많아 해석하고 흐름을 파악하는데 시간이 좀 걸렸다. 이어서 syscall.c 를 주석을 해석하며 코드의 흐..

WEEK 10 PintOS TIL(5월17일 토요일 ~ 5월 18일 일요일)

5월 17일 토요일[목표]Priority Scheduling에 대해서 코드를 분석하고, 작성합니다. (중단)본격적으로 donation을 구현합니다.(중단)프로젝트 2에 대해서 공부합니다. (진행중)10:00 ~ 12:00donation 테스트 케이스를 통과할 수 있게 합니다. 어찌 저찌 해서 GPT와 함께 다 만들었는데, FIFO, sema, condvar 가 다시 되지 않는다… 수정을 진행하기엔 시간이 많이 걸려서 다음 프로젝트할 준비를 해야할 것 같습니다.12:00 ~ 13:20식사를 하고 휴식을 취했습니다.13:20 ~ 15:00Pintos Project 1 중단Project1을 중단하기 전에 블로그들에 있는 코드를 가져와서 All pass 가 되는지 확인했습니다.결론적으로 프로젝트 1은 donat..

WEEK 10 PintOS TIL(5월16일 금요일)

[목표]Priority Scheduling에 대해서 코드를 분석하고, 작성합니다. (진행중)본격적으로 donation을 구현합니다.9주차 정리가 마저 되면 노션을 정리합니다. priority-sema, priority-condvar 를 정리합니다.10:00 ~ 12:00내용 정리를 하고 9주차 퀴즈 내용을 정리하고 있다.12:00 ~ 13:00식사와 휴식13:00 ~ 14:50퀴즈 관련해서 내용들을 정리하고 있다. 비가 와서 그런지 집중이 잘 안된다.14:50 ~ 15:20아침에 해둔 빨래를 정리하고 왔다.15:20 ~ 17:009주차 퀴즈 내용을 모두 정리하고, 벨로그가 다시 활성화되어 재작성하였다. 확실히 벨로그가 에디터나 쓰기가 편한 것 같다…세마포어와 condvar에 대해서 정리하고 있다.17:0..

PintOS 프로젝트1 Priority Scheduling (priority-condvar)

priority-condvar사실 해당 테스트 케이스가 금방 끝난다고 해서 먼저한건데, 하루정도 걸렸습니다…condvar은 condition variable (조건 변수) 를 잘 구현했는지 확인하는 테스트 케이스 입니다.condition variable(조건 변수)스레드가 어떤 특정 조건이 만족될 때까지 기다릴 수 있도록 도와주는 동기화 도구 입니다.비유를 통한 조건 변수 이해카페에 줄 서서 주문하려는 손님들 = 여러 스레드바리스타가 “주문해주세요!”라고 말할 때까지 기다려야 함 = 어떤 조건이 만족될 때까지 기다림각 손님은 자기 차례가 올 때까지 줄에서 대기 (wait)바리스타가 손님을 부르면 (signal), 한 명이 대기열에서 빠져서 주문을 함 (깨움)→ ‘대기했다가, 어떤 조건이 만족되면 깨워줌’..

PintOS 프로젝트1 Priority Scheduling (priority-sema)

priority-sema함수 코드에서 수정 사항이 적을 경우 같은 코드 박스에 작성하였습니다. 그러나 수정 사항이 많은 경우 각각 다른 코드 박스에 작성하였습니다. 또한 세마포어 이론을 이해했다는 가정하에 설명하므로 참고하시면 좋겠습니다.현재 기본으로 제공된 세마포어는 down과 up 등 기본적으로 필요한 로직들은 담겨 있습니다. 그러나 priority(우선순위)에 따라 스레드에게 공유자원 접근 권한을 부여하지 않습니다. 그러므로 세마포어 값을 증가시키며 삽입할 때는 list_insert_ordered 를 통해 정렬을 하며 삽입합니다. 물론 priority_sema_cmp 이라는 비교 함수도 작성해야합니다.세마포어 값을 올리며 pop을 할 때도 sort를 통해 정렬된 리스트에서 pop을 해오고 threa..

9주차 퀴즈 복습

9주차 퀴즈 복습1번 문제응용 프로그램을 구현할 때 multiprocess 와 multithread 중 하나를 선택하는 기준은 어떤 것이 있는지 몇 가지 제시하세요.[답안]안정성과 자원 사용: 시스템의 안정성이 매우 중요한 경우, 멀티프로세스가 선호됩니다. 리소스가 제한적인 환경에서는 멀티스레드가 더 효율적일 수 있습니다.구현의 복잡성: 스레드는 공유 메모리로 인해 동기화 문제가 복잡해질 수 있으므로, 개발자의 동시성 제어에 대한 이해도가 중요합니다.응답 시간: 멀티스레드는 컨텍스트 스위칭이 빠르기 때문에, 더 빠른 응답 시간을 요구하는 경우 유리할 수 있습니다.플랫폼 및 언어 지원: 사용 중인 프로그래밍 언어나 플랫폼이 멀티스레드 또는 멀티프로세스 중 어느 쪽을 더 잘 지원하는지도 중요한 요소가 될 수..

크래프톤 채용 설명회

해당내용은 크래프톤 채용팀, 퍼블리싱 플랫폼팀, 정글 선배분들의 종합적인 내용으로 이루어져 있습니다. 회사 내규에 따라 상황에 따라 언제든지 바뀔수 있으며, 그저 참고용으로만 확인하시면 좋겠습니다.채용팀크래프톤의 비전Create original, Connect the world.직무테크, 데이터, IT인프라, 제작관리, 경영지원, 사업/서비스, QA, UX/UI, 게임디자인, 사운트, 아트, 테크 아티스트 등 일반적인 IT 회사와 직무가 비슷하다.문화소통과 성장을 위한 문화이다. (예시: KLT, KDC, 소통위원회, PoK)제도몰입을 위한 환경과 제도가 있다. 복지는 당연히 많다.채용 프로세스역량을 주로 본다.[서류 검토 → 전화 인터뷰 → 직무 테스트 → 실무 면접 → 최종 면접 → 입사] 순으로 진..

WEEK 09 PintOS TIL(5월15일 목요일)

[목표]Priority Scheduling에 대해서 코드를 분석하고, 작성합니다. (진행중)본격적으로 donation을 구현합니다.condvar에 대해서 학습하고 테스트 케이스를 통과합니다9주차 발표를 진행합니다.09:30 ~ 10:00코드를 작성하고 있습니다. condvar 테스트 케이스가 쉽다고 하여 진행중입니다.10:00 ~ 12:009주차 발표 시작. 정말 다양한 내용들이 발표되었다. 특히나 코치님을 스레드와 비교하여 표현 한 내용이 아직도 기억에 남는다.12:00 ~ 13:00식사 후 휴식발제 시작 (13:00 ~ 13:20)발표 내용 제출 완료했다.10주차에 대해서10주차는 유저 프로그램 개발을 하게 될 것입니다.양이 좀 많을 거고 2주정도 시간이 주어진다.이번주는 운영자 티타임은 없다.10주..

카이스트 Pintos 교수님 강의

강의를 들으면서 이해하고 빠르게 적어서 빠지거나 부족한 내용이 있습니다. 전체적으로 이러한 강의 형식임을 확인해보셨으면 좋겠습니다.캐시에 사이즈가 프로그램을 빠르게 돌리는데 도움이 크다. 캐시에 도움에 따라 첫번째 돌리는 프로그램 보다 두번째 돌리는 프로그램이 더 빠르다. OS는 소프트웨어를 돌릴 떄 하드웨어가 어떻게 돌아가는지 몰라도 일관된 방식에 따라 작동시킬수 있다. 또한 스케줄러에 따라 효과적으로 프로그램을 관리할 수 있게 하기 위해 사용합니다. 추상화가 무엇인가?→ 복잡한 걸 단순하게 생각하기 위해, 무엇을 만드는 과정들을 사용자가 이해하기 쉽도록 중요하지 않은 사항들을 지워버리고 생각하는 것이다. OS 디자이너가 생각한 것?프로그래머는 하드웨어에 대해 디테일하게 알고 싶지 않다. 쉽게 프로그램..

728x90