분류 전체보기 77

[OS] 17장: Free-Space Management

17장: Free-Space Management물리 메모리의 빈 공간 관리할당과 회수를 통해 유지함분할과 병합물리 주소를 분할해서 사용하고, 다 쓰면 병합하는 식으로 동작분할메모리 요구를 하면,만족하는 크기의 빈 공간이 있을 때 할당 가능→ 20byte를 요구하면 안됨 (연속적이지 않아서)1바이트 요구주소가 20부터 시작인 노드가21로 바뀌고, len = 9로 바뀜병합사용 후 반환 시, 인접한 빈 공간과 합쳐짐가운데 10~19 사용중이던게 free 되었음0~19가 합쳐짐할당 공간의 크기 파악free 메소드에는 반환될 크기에 대한 정보가 없음Header 블록을 메모리에 두어서 정보를 받아냄Header 블록필수 정보할당된 크기추가 정보속도 향상을 위한 추가 포인터무결성 체크Header 블록이 있을 때,메모리..

[OS] 16장: Segmentation

16장: Segmentation개요세그먼트 = 임의의 길이의 연속된 주소 공간여기서는 Code, Heap, Stack을 세그먼트라 침주소변환 - 세그먼트 테이블물리 공간에 배치할 때, 세그먼트 단위로 배치함즉, 세그먼트마다 Base/Bounds 레지스터 필요 → 일반화 Base/Bounds 기법하나의 프로세스는 여러 개의 세그먼트로 구성됨세그먼트 주소 변환물리주소 = OffSet + BaseOffSet = 세그먼트 내에서의 위치가상 주소 공간에서 코드,힙,스택 별로 세그먼트가 있는데그 세그먼트 시작 지점에서의 위치로 Offset을 따짐Heap 주소 인코딩4200 번지의 세그먼트에서 인코딩하기4200 = 4096 + 104⇒ 01 | 0000 0110 1000Stack 주소 인코딩 (반대)스택은 거꾸로 ..

[OS] 15장: 주소 변환의 원리

15장: 주소 변환의 원리개요어떻게 메모리를 가상화 하여효율성과 제어를 달성할 것인가 ?효율성: 가상 주소 → 물리주소 변환의 속도제어권: 접근 가능한 메모리 위치 제한유연성: 프로그래밍 편의메모리 가상화하드웨어 지원이 필요함빠른 주소 변환MMU, TLB, Cache ..OS 역할빈 공간 관리 및 할당관리 효율 및 접근 제어가상 공간의 동적 운영메모리 사용 예void func() { int x = 3000; x = x + 3;}어셈블리어 변환128 번지 명령어 인출명령 실행132 번지 명령어 인출명령 실행135 번지 명령어 인출명령 실행가상 주소와 물리 주소물리적 주소물리 메모리에 그대로 올리면 안됨→ OS 재배치 작업 필요메모리 접근 시마다 실제 주소로 변환 작업Base/Bou..

[UIKit] UISegmentedControl 사용해보기

학습 목표UISegmentedControl 개념 알기UISegmentedControl 실습 및 꾸며보기toduck 프로젝트에 사용되는 View 만들어보기학습 내용UIResponder - UIView - UIControl - UISegmentedControlUISegmentedControl의 기본값Image선택된 버튼의 BackgroundImage선택되지 않은 버튼의 BackgroundImage버튼 사이의 DivderImageText선택된 버튼의 TextColor & FontSize선택되지 않은 버튼의 TextColor & FontSizeUISegmentedControl 꾸미기class MainViewController: UIViewController { private let segmented..

iOS/UIKit 2024.06.17

[RL] 가치 기반 에이전트

에이전트 3가지 종류액션을 정하는 기준에 따라 에이전트 3종류를 구분할 수 있음1. 가치 기반 에이전트: 가치함수에 근거하여 액션을 선택 모델 프리 상황에서는 상태 가치함수만으로 액션을 선택할 수 없음. 액션 가치함수를 근거하여 액션을 선택2. 정책 기반 에이전트: 정책함수 π(a∣s)를 보고 액션을 선택 -> 다음 챕터에서 다룸3. 액터-크리틱: 가치함수 + 정책함수 모두 사용, Actor는 행동하는 주체, Critic은 비평가, (즉 상태가치 + 액션가치) ..

[RL] Deep RL 첫 걸음

7.1 함수를 활용한 근사우리가 해온 것들은 데이터 개수가 적은 간단한 경우였다.따라서 테이블 기반 방법론으로 동작해도 문제가 없었다.그러나, 바둑과 체스 등과 같이상태의 경우의 수가 많은 문제에서 테이블 기반 방법론은 적용하기 어렵다.바둑이나 체스처럼 이산적(discrete)인 형식이 아닌 속도와 같이 연속적인 값을 가질 수 있음.함수의 등장테이블 기반 방법론을 사용하지 않고,위 사진의 함수에 저장실제 가치의 근사함수데이터가 많은 경우위 그림과 같이 MSE를 최소로 하는 a, b를 결정함수의 복잡도에 따른 차이1차함수의 경우 데이터 양이 많아지면 데이터를 표현하기에 어려움이 있음1차 함수가 아닌 다항 함수를 사용할 수 있음위 그림에서 고차함수로 갈수록 MSE는 감소하지만 데이터에 노이즈가 석여 있음노이..

[RL] MDP를 모를 때 최적의 정책 찾기

MDP를 모를 때 최적의 정책찾기몬테카를로 컨트롤정책 이터레이션을 그대로 사용할 수 없는 이유정책 이터레이션 리뷰 정책 이터레이션은 정책 평가와 정책 개선 두 단계로 구성 정책 평가: 고정된 정책 𝜋에 대해 각 상태의 가치를 구함 = 반복적 정책 평가 = 밸류 평가 정책 개선: 정책 평가의 결과에 따라 새로운 정책 𝜋'를 생성 = 그리디 정책 생성 반복적 정책 평가와 정책 개선을 진행하면 정책과 가치가 변하지 않는 단계에 도달하게 됨 -> 최적 정책과 최적 가치반복적인 정책 평가를 사용할 수 없음모델 프리 상황에서는 보상함수 r과 전이확률 P를 모르기 때문에위 벨만 기대 방정식 2단계를 사용할 수 없음 정책 개선 단계에서 그리디 정책을 만들 수 없음 지난 주를 통해 각 상태의 가치를 알..

[RL] MDP를 모를 때 밸류 평가하기

몬테카를로 학습 (MC)정확한 수학 수식에 의해 계산/측정 하는 것이 아닌,확률적인 방법에 의해 값을 통계적으로 계산하는 것보상 함수와 전이 확률을 알 때,DP를 사용하여 전체 상태를 한 번씩 모두 실행하며 각 상태의 가치를 업데이트 했음몬테카를로 학습에서는 하나의 에피소드가 끝날 때까지 실행하면서경험을 모으고, 그 경험으로부터 가치 함수를 계산함정확한 결과를 얻기보다는 근사적인 결과를 얻을 경우에 사용몬테카를로 학습의 전제조건단 하나의 전제조건이 필요한데,에이전트가 동작하는 환경에 시작과 끝이 있어야 한다.리니지, 메이플스토리처럼 MMORPG의 경우 엔딩이 없이 쭉 이어지는 게임이지만,디아블로와 같은 게임은 에피소드 단위로 게임이 진행되어 에피소드마다 엔딩이 있다.-> 디아블로는 MC 적용 가능몬테카를..

Swift로 코드 최적화하기

백준/프로그래머스 풀다보면서 얻은 Swift 꿀팁 정리(다른 언어도 포함일 수도 ㅇㅇ) 1. 입력 받을 때 map { Int($0)! } 보다는 map { Int(String($0))! }이 더 빠르다.let input = readLine()!.split(separator: " ").map { Int($0)! }vslet input = readLine()!.split(separator: " ").map { Int(String(($0))! }2. 함수 단위로 코드를 실행하면 컴파일러 최적화 측면에서 더 효율적이다.func solve() -> Int { var N = Int(readLine()!)! var crane = readLine()!.split(separator: " ").map { Int..