Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 4기
- 알고리즘
- Flutter
- 모션비트
- Vue.js
- 사이드프로젝트
- 티스토리챌린지
- 스택
- 크래프톤 정글
- JavaScript
- 코드트리
- 큐
- 오블완
- Java
- pintos
- userprog
- corou
- TiL
- 소켓
- 백준
- 자바
- 나만무
- CSS
- defee
- 리액트
- 자바스크립트
- HTML
- 핀토스
- 시스템콜
- 크래프톤정글
Archives
- Today
- Total
미새문지
크래프톤 정글 week07, day58 - demand paging, TLB, 추상화 디자인, 잔디심기 본문
728x90
demand paging
- 운영체제에서 사용하는 메모리 관리 전략 중 하나로, 프로그램 실행 시 모든 메모리를 물리적 메모리에 적재하는 대신, 필요한 페이지만 메모리에 적재하는 방식
- 프로그램이 실행되기 위해서는 그 프로그램의 모든 코드와 데이터가 물리적 메모리에 적재되어야 하지만, 특정 함수는 실행 중에 한 번도 호출되지 않을 수 있고 또한 프로그램이 크면 모든 데이터를 메모리에 적재하는 것은 메모리 자원을 낭비하게 된다.
- 이런 문제를 해결하기 위해 demand paging 전략이 사용된다.
- 이 전략을 프로그램 실행 시 필요한 페이지만 메모리에 적재하고, 나머지 페이지는 디스크에 남겨두며, 이후 필요에 따라 메모리에 적재한다.
- 이를 통해 메모리 사용량을 줄이고 시스템의 전반적인 효율성을 향상 시킬 수 있다.
- 프로그램 실행 중 메모리에 없는 페이지에 접근하려고 하면 페이지 폴트(page fault)가 발생하고 이 때, 운영체제는 해당 페이지를 디스크에서 메모리로 적재하게 된다.
Design 기법
- Principle(원칙)
- 효과적인 디자인을 만드는데 도움이 되는 가이드 라인이나 규칙을 의미한다.
- 이는 디자인의 방향성을 제시하며, 디자인 결정을 내리는데 필요한 틀을 제공한다.
- 예시) 일관성, 가시성, 유저 중심성 등
- Transferable Thought(전이 가능한 생각)
- 한 문맥에서 배운 개념이나 아이디어를 다른 문맥에 적용하는 능력을 말한다.
- 디자인에서 이는 새로운 문제에 대한 해결책을 찾는데 유용하며, 기존의 아이디어를 새로운 방식으로 활용하거나, 다른 분야에서 가져온 아이디어를 특정 디자인 문제에 적용하는데 사용된다.
TLB(Translation Lookside Buffer)
- 가상 메모리 시스템에서 빠르게 가상 주소를 물리 주소로 변환하기 위한 하드웨어 캐시
- 컴퓨터 메모리 관리에서는, 주소 공간을 관리하기 위해 가상 주소를 사용하는데, 프로그램은 이 가상 주소를 사용해 메모리에 접근하지만, 실제 데이터는 물리 메모리에 저장된다.
- 따라서 가상 주소를 물리 주소로 변환하는 과정이 필요하고, 페이지 테이블이라는 데이터 구조를 사용한다.
- 그러나 페이지 테이블을 사용해 가상 주소를 물리 주소로 매핑하는 과정을 상당한 시간이 소요되는데, 이를 해결하기 위해 TLB가 도입됐다.
- TLB는 최근에 사용된 주소 변환의 결과를 저장하며, 필요할 때 빠르게 접근할 수 있게 한다.
- 이를 통해 가상 주소를 물리 주소로 변환하는 시간을 크게 줄일 수 있다.
- 필요한 주소 변환 정보가 TLB에 없을 경우, 운영체제는 페이지 테이블을 검색해 해당 정보를 찾아내고, 이를 TLB에 로드한다. 이 후 동일한 주소 변환이 필요할 경우, TLB를 통해 빠르게 변환 정보를 얻을 수 있다.
Abstractions Design(추상화 디자인)
- 추상화 디자인은 복잡성을 관리하는 방법 중 하나로, 복잡한 시스템, 프로세스 또는 개념을 더 단순하고 이해하기 쉬운 형태로 변환하는 것을 의미한다.
- 이는 사용자가 필요하지 않은 세부 정보로부터 자유롭게 하여, 사용자가 시스템의 핵심 기능에 집중할 수 있도록 돕는다.
- 예시로는 운영체제가 있는데, 운영체제는 사용자와 하드웨어 사이의 인터페이스 역할을 하며, 사용자가 직접 하드웨어를 제어하는 복잡성을 추상화한다.
- 이로 인해 사용자는 파일을 저장하거나 프로그램을 실행하는 등의 작업을 하드웨어의 세부 사항을 알지 못해도 수행할 수 있다.
- 또 다른 예시로는 프로그래밍 언어가 있는데, 프로그래밍 언어는 개발자가 컴퓨터 하드웨어에 직접 명령을 내리는 대신, 더 높은 수준의 언어를 사용해 애플리케이션을 작성할 수 있게 해준다.
- 추상화의 핵심 목표는 사용자에게 필요한 정보와 동작만을 제공하고, 외의 복잡한 세부 사항은 숨김으로써 단순화하는 것이다. 이는 사용자 경험을 향상시키고, 시스템 사용자가 주요 작업에 집중할 수 있게 돕는 중요한 디자인 기법이다.
오늘의 잔디심기
백준
|
5338
|
자바스크립트
|
브론즈5
|
마이크로소프트 로고 |
console.log(" _.-;;-._");
console.log("'-..-'| || |");
console.log("'-..-'|_.-;;-._|");
console.log("'-..-'| || |");
console.log("'-..-'|_.-''-._|");
pintOS 학습하느라 잔디를 심기가 애매해서 잔디 끊기지 않게 제일 쉬운 출력 문제 풀었다.
에린씨와 같이 학습한 세마포어를 이용한 timer_sleep은 구현하진 못했지만, 예비군에서 돌아온 재남씨와 에린씨가 같이 개같이 굴러서 timer_sleep을 구현했다. 본인은 pintOS에 대한 지식이 아직 부족해 옆에서 손가락만 빨아버렸다.
그리고 이어서 재남씨가 폭주해서 priority 테스트도 바로 클리어해버렸다. 진짜 멋있는 사람
오늘 걸렸던 부분은 실행중인 스레드와 다음에 올 스레드를 교체해줘야 하는데 그 부분에서 많이 버벅였다가 다른 팀원의 조언으로 해결했다.
오늘 7주차 퀴즈도 봤는데 퀴즈 관련 문제들은 내일 올릴 예정
학습 시간 : 9 ~ 24시
728x90
'크래프톤 정글 > TIL' 카테고리의 다른 글
크래프톤 정글 week08, day60 - 잔디심기, priority-donate-multiple 구현 (1) | 2024.03.08 |
---|---|
크래프톤 정글 week07, day59 - 잔디심기, alarm-simultaneous 구현 (1) | 2024.03.07 |
크래프톤 정글 week07, day57 - 잔디심기, 바이너리 세마포어로 alarm_sleep 진행 중 (4) | 2024.03.05 |
크래프톤 정글 week07, day56 - 잔디심기, 동기화 코드 학습 중 (1) | 2024.03.03 |
크래프톤 정글 week07, day55 - 4BSD, Nice, Busy Waiting, 잔디심기 (3) | 2024.03.03 |