분류 전체보기
-
[Operating System] 가상 메모리 : 쓰기 시 복사와 계층적 페이징Operating System 2024. 6. 22. 21:10
가상 메모리 기법의 쓰기 시 복사와 계층적 페이징에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' >이론적인 fork() 함수는 호출 시 부모 프로세스와 동일한 자식 프로세스가 별도의 메모리 공간에 통째로 복제되어 적재됩니다. 이는 프로세스 생성 시간 지연과 메모리 낭비라는 단점이 있습니다.이를 해결하기 위해 쓰기 시 복사가 나타났습니다. 이를 통해 프로세스 생성 시간과 메모리를 절약할 수 있습니다. [ 쓰기 시 복사 ]1. 부모 프로세스로부터 동일한 자식 프로세스가 복제 되어 생성되면 자식 프로세스와 동일한 프레임을 가리킵니다.(쓰기 작업이 없다면 이 상태 유지) 2. 부모/자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시 해당 페이..
-
[Operating System] 가상 메모리 : 페이징Operating System 2024. 6. 13. 16:50
현대 운영체제에서 가장 대표적이고 대중적인 가상 메모리 관리 기법인페이징에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' >가상 메모리 관리 기법은 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 메모리 공간을 사용할 수 있게 해주는 기술입니다. 외부 단편화 문제도 해결할 수 있습니다.대표적으로 페이징과 세그멘테이션 기법이 있습니다. >프로세스의 논리 주소 공간을 페이지(page)라는 일정 단위로 자르고,메모리의 물리 주소 공간을 프레임(frame)이라는 페이지와 동일한 일정한 단위로 자른 뒤페이지를 프레임에 할당하는 가상 메모리 관리 기법입니다. [ 페이징에서의 스와핑 ]: 프로세스를 실행하기 위해..
-
[Data Structure] BST (Binary Search Tree)Data Structure 2024. 5. 24. 23:38
BST (Binary Search Tree)에 대해 정리하였습니다.Binary Search Tree 즉 이진탐색트리는 왼쪽 자식 노드는 부모 노드보다 작고, 오른쪽 자식 노드는 부모 노드보다 큰 값을 가지는 이진 트리입니다. Binary Search Tree (BST)에서 값이 같은 노드, 즉 중복된 값을 처리하는 방법은 다양합니다. 1. 중복 값을 허용하지 않기2. 중복 값을 왼쪽 서브트리에 삽입3. 중복 값을 오른쪽 서브트리에 삽입4. 중복된 값의 카운트를 증가시키기 [ 장점 ]탑색 속도가 빠릅니다: 이진 탐색 트리는 데이터가 정렬된 상태를 유지하므로 탐색 속도가 빠릅니다. 이진 탐색 트리에서 데이터를 찾는 데 필요한 평균 시간 복잡도는 O(log n)입니다.간단한 구현: 이진 탐색 트리의 구현은..
-
[Algorithm] Big-O NotationAlgorithm 2024. 5. 23. 00:43
알고리즘의 중요한 개념인 Big-O 표기법에 대해 정리하였습니다.Big-O Notation >Big-O 표기법(Big-O Notation)은 알고리즘의 효율성을 표현하는 방법으로, 주로 입력 크기(n)에 따른 알고리즘의 시간 복잡도와 공간 복잡도를 나타내는 데 사용됩니다. 이를 통해 알고리즘이 실행될 때 얼마나 많은 리소스를 사용하는지 대략적으로 평가할 수 있습니다.Big-O Notation에서 상수는 항상 무시합니다. 시간 복잡도(Time Complexity) >시간 복잡도(Time Complexity)는 알고리즘이 완료되는 데 걸리는 시간을 나타내는 지표로, 주어진 입력 크기(n)에 대한 연산의 수를 평가합니다. [ O(1) : 상수 시간 복잡도]: 입력 크기에 상관없이 항상 일정한 시간이 걸리..
-
[Operating System] 가상 메모리 : 연속 메모리 할당Operating System 2024. 5. 20. 13:53
연속 메모리 할당 방식과 한계, 스와핑에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' >프로세스들이 메모리 내에서 연속적으로 할당되는 방식을 연속 메모리 할당이라고 합니다. : 프로세스 A는 A의 크기만큼 메모리 할당, B는 A 다음 B의 크기만큼 할당, C는 B 다음 C의 크기만큼 할당, ... >프로세스는 메모리의 빈 공간에 할당 되어야 합니다.빈 공간이 여러 개 있을 시 최초 적합, 최적 적합, 최악 적합 3가지 방식으로 메모리 할당을 진행할 수 있습니다. [ 최초 적합 (first-fit) ]: 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방..
-
[Operating System] 교착 상태 : 교착 상태 해결 방법Operating System 2024. 5. 20. 12:48
교착상태 해결 방법 중 예방, 회비, 검축 후 회복에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' >애초에 교착 상태가 발생 하지 않도록 교착 상태 발생 조건( 상호 배제, 점유와 대기, 비선점, 원형 대기 ) 중 하나를 없애버림으로써 교착 상태를 예방합니다.교착 상태가 발생하지 않음은 보장할 수 있으나 부작용이 따르는 방식입니다. [ 상호 배제 없애기 ]: 모든 자원을 공유 가능하게 만들기→ 이론적으로는 가능할 수 있겠지만 현식적인 방법은 아닙니다. [ 점유와 대기 없애기 ]: 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분→ 자원의 활용률을 낮출 수 있습니다. [ 비선점 조건 없애기 ]→ 선점이 가능한 자원(ex..
-
[Operating System] 교착 상태 : 교착 상태란Operating System 2024. 5. 20. 12:04
교착상태에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' >일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상을 교착상태라고 합니다.교착상태를 해결하기 위해서는1. 교착 상태가 발생했을 때의 상황을 정확히 표현해보기2. 교착 상태가 일어나는 근본적인 이유 이해하기 교착상태 예시 : 식사하는 철학자 문제 >자원 할당 그래프를 통해 교착 상태가 발생했을 때의 상황을 이해할 수 있습니다.교착 상태가 일어난 그래프는 자원 할당 그래프가 원의 형태를 띄고 있습니다. [ 자원 할당 그래프 그리는 방법 ]1. 프로세스는 원으로, 자원의 종류는 사각형으로 표현 2. 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현 3. 프로세스가 어떤 ..
-
[Operating System] 프로세스 동기화 : 동기화 기법Operating System 2024. 5. 20. 11:30
여러 프로세스 동기화 기법 중뮤텍스 락, 세마노, 모니터에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' >동기화의 두 가지 종류(실행 순서 제어, 상호 배체) 중 상호 배제를 위한 동기화 도구입니다.자물쇠 역할을 하여 임계구역을 관리합니다. [ 뮤텍스 락 구현 방법 ]자물쇠 역할 : 프로세스들이 공유하는 전역 변수 lock임계 구역을 잠그는 역할 : acquire 함수- 프로세스가 임계 구역에 진입하기 전에 호출- 임계 구역이 잠겨 있다면 임계 구역이 열릴 때까지(lock이 false가 될 때까지) 임계 구역을 반복적으로 확인(이를 busy waiting이라고 합니다. 반복적으로 계속해서 확인하는 이러한 방식은 좋은 방식이 아닙니다.)- 임..