Memory management : 물리적 메모리 할당 방법 Allocation of Physical Memory
·
💻 Operating System
메모리의 두 영역 OS 상주 영역 낮은 주소 영역 인터럽트 벡터interrupt vector 와 함께 사용 사용자 프로세스 영역 높은 주소 영역 사용자 프로세스 영역의 할당 방법 연속 할당 Contiguous allocation 각 프로세스가 메모리의 연속적인 공간에 적재되는 방법 고정분할 방식 Fixed partition allocation 가변분할 방식 Variable partition allocation 불연속 할당 Noncontiguous allocation 하나의 프로세스가 메모리 여러 영역에 분산되어 적재되는 방법 현대 시스템에서 사용한다. Paging ⭐️ Segmentation Paged Segmentation
주간 회고 (2023-02-06)
·
💬 Smalltalk
2023-01-30 ~ 2023-02-05 요약 월요일 순수함수, 불변성, 참조투명성에 대해 공부하였다. 주말에 미리 공부해둔 것이 도움이 많이 되었다. cs8과제 리팩토링을 진행하였다. 이전 과제들에 비해서는 상대적으로 쉬운 편이라 숨 좀 돌릴 수 있었다. 함수형 프로그래밍과 객체지향형 프로그래밍이 서로 상반되는 것이 아니라 보완적인 관계라는 것은 알겠다. 근데 어떤 부분에서 함수형 프로그래밍으로 구현하는 것이 좋은 지 감이 잘 안잡힌다. util을 구현할 때 사용해보면 좋을까? 화요일 절차지향형 프로그래밍과 함수형 프로그래밍의 차이는 무엇인가? 궁금한 것이 많은데, 기본서가 적당한 것이 없다. 계속 구글링과 블로그에 의존하다보니 내가 아는 것에 대한 의심이 생긴다. 내가 이해한 것이 맞는지? 수요일 ..
BJ2075 : N번째 큰 수
·
🧩 Algorithm
https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 접근 방법 가볍게 풀 수 있는 문제인가 싶었지만 기본 배열로는 풀 수가 없다. 함께 공부하는 동료의 조언으로 우선순위 큐를 시도하였다. 우선순위 큐를 활용하여 풀면 시간복잡도가 유리하여 편리하게 풀 수 있다. 참조링크 👉 우선순위 큐의 시간 복잡도 우선순위 큐는 완전 이진트리 형태의 힙을 이용해 구현할 수 있다. 우선순위 큐의 삽입과 삭제는 𝑂(𝑙𝑜𝑔𝑁)의 시간 복잡도를 가진다. 우선순위 큐를 이용한 정..
람다식 Lambda Expression : 자바에서의 활용을 중심으로
·
☕️ Java
람다식 Lambda Expression 함수(메서드)를 간단한 ‘식’으로 표현하는 방법이다. (a, b) -> a>b ? a: b 익명 함수 anonymous function 함수와 메서드의 차이점 근본적으로 동일하지만, 함수 : 일반적인 용어. 클래스에 독립적 메소드 : 객체지향개념의 용어이다. 클래스에 종속적이다. 람다식 사용법 호출해서 사용하는 방식이 아닌, 구현부에서 바로 함수처리를 하여 내부에서 직접 기능을 처리하는 방식 반환 타임과 이름을 지운다. ()와 {} 사이에 화살표로 연결한다. 반환값이 있는 경우 식이나 값만 적고 return, ; 생략 가능 매개변수의 타입이 추론 가능하면 대부분 생략 가능하다. // 작성실습 int max(int a, int b) { return a>b? a:b; ..
순수함수
·
👩🏻‍💻 Computer Science
순수함수 일반적으로 이야기하는 프로그래밍에서 순수 함수의 특징들은 수학적 함수의 성질에서 기원한다. 수학적 함수의 정의에서 정의역 1개의 값은 2개 이상의 치역을 가질 수 없다. 프로그래밍에서 순수함수는 다음과 같은 특징을 갖는다. 함수의 인자로 사용되는 값 하나에 대응하는 함수의 결과값이 유일하게 존재한다. 평가 시점이 중요하지 않다. 언제 어디서든 동일한 인자값에는 동일한 값이 반환된다. 불변성 : 함수 외부의 상태를 변경하지 않는다. 이를 부수효과side effect 가 없다 라고도 한다. 참조투명성 : 외부 상태를 변경하지도 않고 외부의 상태로부터 영향 받지 않는다. 부수효과 side effect 란? 외부에서 받는 효과로 다음과 같은 예시 상황들이 있다. 자료구조를 고치거나 필드값에 할당 자료구..
Memory management : Dynamic Loading / Overlays / Swapping / Linking
·
💻 Operating System
메모리 관리 용어를 먼저 정리해봅시다. 동적 적재 Dynamic Loading 프로세스 전체를 메모리에 미리 다 올리는 것이 아니라 해당 루틴이 불려질 때 메모리에 load 하는 것을 뜻합니다. 메모리 효용성이 향상됩니다. 가끔씩 사용되는 많은 양의 코드의 경우 유용하게 사용됩니다. 모든 코드가 자주 사용되지는 않습니다. 예를 들어 오류 처리 루틴의 경우 미리 통째로 메모리에 올려놓는 것은 비효율적입니다. 원래 Dynamic Loading이라는 말은 운영체제의 특별한 지원 없이 프로그램 자체에서 구현하는 것을 뜻합니다. OS의 경우 라이브러리를 통해 지원 가능하므로 일일히 개발자가 만들지는 않습니다. 페이징과 다른 말이지만, 최근은 페이징과 섞어쓰기도 합니다. 오버레이 Overlays 메모리에 실제 필요..