728x90

JUNGLE 23

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로 감소된다. 페이지 크기의 증가는 부작용을 수반한다. 가장 큰 문제는 페이지 내부의 낭비공간이 증가한다는 것이다. 이를 내부 단편화라 한다. 응용 프로그램이 여러 페이지를 할당 받았지만, 할당받은 페이지의 일부분만 사용하는터에, 결국 컴퓨터 시스템의 메..

24.03.12 운영체제, CS, PintOS

운영체제 15. 페이징 : 더 빠른 변환(TLB) 변환 - 색인 버퍼(TLB : translation - lookaside buffer) MMU의 일부다. 자주 참조되는 가상 주소 - 실 주소 변환 정보를 저장하는 하드웨어 캐시다. 주소 - 변환 캐시(address translation cache)가 조금 더 적합한 명칭이다. 가상 메모리 참조 시, 하드웨어는 먼저 TLB에 원하는 변환 정보가 있는지를 확인한다. 만약 있다면 페이지 테이블(모든 변환 정보를 가지고 있다.) 를 통하지 않고 변환을 수행한다. 실질적으로 TLB는 페이징 성능을 엄청나게 향상시킨다. 15.1 TLB의 기본 알고리즘 하드웨어 부분의 알고리즘은 다음과 같이 동작한다. 먼저, 가상 주소에서 가상 페이지 번호(VPN : Virtual..

24.03.11 운영체제, KEYWORD

운영체제 14. 페이징 개요 공간을 동일 크기의 조각으로 분할하는 것을 페이징(Paging)이라 부른다. 프로세스의 주소 공간을 몇 개의 가변 크기의 논리 세그멘트로 나누는 것이 아니라 고정 크기의 단위로 나눈다. 이 각각의 고정 크기 단위를 페이지(Page)라고 부른다. 상응하여 물리 메모리도 페이지 프레임(Page Frame) 이라고 불리는 고정 크기의 슬롯의 배열이라고 생각한다. 이 프레임 각각은 하나의 가상 메모리 페이지를 저장할 수 있다. 14.1 간단한 예제 및 개요 물리 메모리는 고정 크기의 슬롯들로 구성된다. 가상 주소 공간의 페이지들은 물리 메모리 전체에 분산 배치되어 있다. 페이징의 장점은 유연성이다. 페이징을 사용하면 프로세스의 주소공간 사용 방식과는 상관없이 효율적으로 주소공간 개념..

24.03.10 운영체제, PintOS 정리

운영체제 13. 빈공간 관리 빈공간 관리는 관리하고 있는 공간이 고정 크기의 단위로 나누어져 있는 경우 쉽다. 그런 경우 고정 크기 단위의 리스트를 유지하면 된다. 클라이언트가 그 중 하나를 요청하면 첫 번째 항목을 반환하면 된다. 빈공간 관리가 더 어렵고 흥미로운 경우는 관리하는 공간이 가변 크기 빈 공간들의 집합으로 구성되어 있는 경우다. 이 경우 malloc()과 free()에서 처럼 사용자 수준 메모리 할당 라이브러리에서 그리고 세그멘테이션으로 물리 메모리를 관리하는 운영체제에서 발생한다. 어느 경우에도 외부 단편화가 존재한다. 13.1 가정 malloc()과 free()에서 제공하는 것과 같은 기본 인터페이스를 가정한다. 이 라이브러리가 관리하는 공간은 역사적으로 힙으로 불리며, 힙의 빈공간을 ..

728x90