728x90

KRAFTON 38

24.03.20 PintOS

PintOS Project2가 끝이났다. 처음에는 엄청 어려웠지만 끝나는 오늘와서 생각해보니 더 어려웠다. fork ,wait 진짜 미친 난이도 정말 너무 너무 어려웠다. Project 정리로 한번에 정리해서 올리도록 하겠다. wait , exec, fork 개발을 완료했다. 아쉽게 multi_oom은 테스트 통과하지 못했다 ㅠㅜㅠ tid_t process_fork (const char *name, struct intr_frame *if_) { /* Clone current thread to new thread.*/ struct parent_info my_data; my_data.parent = thread_current(); my_data.parent_f = if_; struct thread *cur ..

24.03.19 퀴즈, 운영체제, PintOS

퀴즈 1. 커널 모드에서 실행될 수 있는 작업의 예를 들고, 이러한 작업들이 사용자 모드에서 실행되지 않는 이유를 설명하세요. 공유 자원 관리는 운영체제의 중요한 기능 중 하나로, 주로 커널 모드에서 실행된다. 예를 들어, 파일 시스템, 메모리, 프린터 등과 같은 자원은 여러 프로세스에 의해 동시에 요청될 수 있으며, 이에 대한 접근과 사용을 적절히 관리하는 것이 필수적이다. 커널 모드에서는 이러한 자원들에 접근을 제어하고, 충돌이나 데이터 손상을 방지하는 역할을 한다. 사용자 모드에서는 이러한 공유 자원의 직접 관리를 수행하지 않는다. 이는 여러 사용자 또는 프로세스가 자원에 직접 접근할 경우 데이터의 일관성과 안정성이 위협받을 수 있기 때문입니다. 2. 운영체제에서 컨텍스트 스위칭이 발생하는 과정에서..

24.03.18 운영체제, KEYWORD, PintOS

운영체제 21. 락 프로그래머들은 소스코드의 임계영역을 락으로 둘러서 그 임계영역이 마치 하나의 원자단위 명령어인것 처럼 실행되도록 한다. 21.1 락 : 기본개념 락은 둘 중 하나의 상태를 갖는다. 첫 번째는 사용가능(available) 상태 (unblocked 또는 free) 이다. 즉, 어떤 쓰레드도 락을 소유하고 있지 않다. 두 번째는 사용 중(acquired) 상태이다. 즉, 임계영역에서 정확히 하나의 쓰레드가 락을 획득한 상태이다. lock과 unlock 루틴의 의미는 간단하다. lock() 루틴 호출을 통해 락 획득을 시도한다. 만약 어떤 쓰레드도 락을 갖고 있지 않으면 그 쓰레드는 락을 획득하여 임계영역 내로 진입한다. 이렇게 락을 획득한 쓰레드를 락 소유자(owner)라고 부른다. 만약 ..

24.03.17 운영체제, PintOS

운영체제 20. 병행성 : 개요 하나의 쓰레드의 상태는 프로세스의 상태와 매우 유사하다. 쓰레드는 프로그램 카운터와 연산을 위한 레지스터들을 가지고 있다. 만약 두 개의 쓰레드가 하나의 프로세서에서 실행 중이라면 실행하고자 하는 쓰레드는 반드시 문맥교환을 통해 실행중인 쓰레드와 교체 되어야 한다. 프로세스의 쓰레드들의 상태를 저장하기 위해서는 하나 또는 그 이상의 쓰레드 제어블럭(TCB : thread control block)이 필요하다. 프로세스와의 가장 큰 차이는 프로세스의 경우와 달리 쓰레드간의 문맥 교환에서는 주소공간을 그대로 사용한다는 것이다.(사용하고 있던 페이지 테이블을 그대로 사용하면 된다.) 쓰레드와 프로세스의 또 다른 차이는 스택에 있다. 고전적 프로세스 주소 공간과 같은 모델(단일 ..

24.03.16 운영체제, PintOS

운영체제 19. 완전한 가상 메모리 시스템 19.1 VAX/VMS 가상 메모리 VMS는 컴퓨터의 구조적 결함을 소프트웨어로 보완한 훌륭한 사례다. 운영체제가 이상적인 개념과 환상을 제공하기 위해 하드웨어에 의존하지만, 하드웨어가 모든것을 해내지 못할 경우도 있다. 하드웨어 결함에도 불구하고 시스템이 효과적으로 작동하기 위해서 VMS 운영체제가 무엇을 하였는지 볼 것이다. 메모리 관리 하드웨어 VAX-11은 프로세스마다 512바이트 페이지 단위로 나누어진 32비트 가상주소 공간을 제공한다. 가상주소는 23비트 VPN과 9비트 오프셋으로 구성되어있다 VPN의 상위 두 비트는 페이지가 속한 세그멘트를 나타내기 위해서 사용되었다. 이 시스템은 하이브리드 구조를 갖고 있다. 주소공간의 하위 절반은 ‘프로세스 공간..

24.03.15 운영체제, PintOS

운영체제 18. 물리 메모리 크기의 극복 : 정책 빈 메모리 공간이 거의 없으면 운영체제는 메모리 압박(memory pressure)을 해소하기 위해 다른 페이지들을 강제적으로 페이징 아웃(Paging out)하여 활발히 사용중인 페이지들을 위한 공간을 확보한다. 내보낼(evict) 페이지 선택은 운영체제의 교체정책(replacement policy) 안에 집약되어 있다. 18.1 캐시관리 캐시 히트와 미스의 횟수를 안다면 프로그램의 평균 메모리 접근 시간(AMAT : average memory access time)를 계산할 수 있다. AMAT = TM + (PMISS - TD) TM : 메모리 접근 비용 TD : 디스크 접근 비용 PMISS : 캐시에서 데이터를 못 찾을 확률 메모리의 데이터를 접근하..

8Week 24.03.07 - 24.03.13 부제 : 쉽지 않음

8Week 24.03.07 - 24.03.13 회고 Project1. Thread가 끝나고 Project 2. Userprogram이 시작됐다. 나름 그래도 1을 잘 마친 것 같아서 기분이 좋았던 것도 잠시. 2가 순탄하게 되지 않을까 라는 내 기대를 산산조각 내면서 또 힘들날이 도래했다. 쉽지않다 쉽지않아! KPT 회고 Keep, Problem, Try의 약자로 Keep은 잘 한 것, Problem은 아쉬운 것, Try는 K와 P기반으로 무엇을 할지에 대해 작성하는 방법이다. K : 잘 해와서 유지하고 싶은 것 P : 어려움을 느껴서 개선하고 싶은 것 T : 구체적인 시도할 내용 프로젝트 설명 PintOS Project1. Thread가 종료됐다. PintOS Project2. UserProgram이 ..

24.03.14 운영체제, PintOS

운영체제 17. 물리 메모리 크기의 극복 : 메커니즘 스왑 공간이 추가되면 운영체제는 실행되는 각 프로세스들에게 큰 가상 메모리가 있는 것 같은 환상을 줄 수 있다. 멀티 프로그래밍 시스템 ( 컴퓨터의 사용률을 높이기 위해 ‘동시에’ 여러 프로그램들을 실행시키는 시스템)이 발명되면서 많은 프로세스들의 페이지를 물리 메모리에 전부 저장하는 것이 불가능하게 되었다. 그래서 일부 페이지들을 스왑아웃 하는 기능이 필요하게 되었다. 멀티 프로그래밍과 사용 편의성등의 이유로 실제 물리 메모리보다 많은 용량의 메모리가 필요하게 되었다. 이것이 현대 Virtual Memory의 역할이다. 17.1 스왑공간 가장 먼저 할 일은 디스크에 페이지들을 저장할 수 있는 일정 공간을 확보하는 것이다. 이 용도의 공간을 스왑공간(..

9Weeks_CoffeeChat

CoffeeChat 주제 : 일머리란 무엇인가? 내 생각 공통적인게 있고, 자리에 따라 다른게 있다고 생각한다. 해야할 일을 하고 안해도 되는 일을 하지 않는 것이다. 최악은 하지말아야 할 일을 하는 것이라고 생각한다. 해야할 일과 하지 말아야야 할 일의 기준은 무엇일까? 라고 생각했다. 교육관 사람들의 생각 no abstraction more details! 눈치 - 가장 많은 사람들이 이야기 했다. 상대방이 원하는 행동을 하는 것 설명을 하면 그 키워드나 의도 파악을 잘하는 사람 알잘딱깔센 하게 A를 시키면 A+1 까지 해오는 사람 일을 똑부러지게 한다. 일 빠르고, 정확하게, 시킨 사람이 답답함이 없는 사람 일하는 시간에 일을 집중하는 사람 정해진 시간내에 자신이 할 일을 완료하는 것. 귀찮은데 똑..

24.03.13 운영체제

운영체제 16. 페이징 : 더 작은 테이블 16.1 간단한 해법 : 더 큰 페이지 페이지 테이블의 크기를 간단하게 줄일 수 있는 방법이 있다. 페이지 크기를 증가 시키면 된다. 32비트 주소 공간에서 16KB 페이지를 가정해보자. 18비트의 VPN과 14비트의 오프셋을 갖게 된다. 각 PTE(4바이트)의 크기가 모두 동일하다면, 페이지 테이블에 2^18 개의 항목이 있으며, 페이지 테이블의 총 크기는 1MB가 된다. 기존 페이지 테이블 대비 크기가 1/4로 감소된다. 페이지 크기의 증가는 부작용을 수반한다. 가장 큰 문제는 페이지 내부의 낭비공간이 증가한다는 것이다. 이를 내부 단편화라 한다. 응용 프로그램이 여러 페이지를 할당 받았지만, 할당받은 페이지의 일부분만 사용하는터에, 결국 컴퓨터 시스템의 메..

728x90