본문 바로가기

Computer Science32

[자료구조] 배열(Array) 목차 배열(Array) 개념 Array는 미리 할당된 크기의 메모리에 연속적으로 data를 저장하는 자료구조입니다. C언어에서 배열의 각 크기는 4byte입니다. Array는 미리 할당된 크기에 data를 저장하는 한계점이 존재합니다. → 이는 Dynamic Array를 통해 보완가능합니다. 만약 미리 할당된 크기를 넘어설 경우, 더 큰 Array를 선언하고 그 Array에 기존 데이터를 옮겨 담습니다. 더 큰 Array의 size는 일반적으로 기존 Array size의 2배를 할당합니다. (doubling 방법) 데이터를 옮겨 담을 때는 O(n) 시간이 걸립니다. 즉, 기본적으로 제일 뒤에 데이터를 추가할 때는 O(1)이지만, 만약 기존 크기를 넘어서는 순간 제일 뒤에 데이터를 추가하게 되면 새로운 A.. 2024. 4. 15.
가상 메모리 목차 가상 메모리 가상 메모리란? 가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 프로그램이 사용하는 주소 공간을 실제 물리적 메모리 크기와 무관하게 만들어주고 외부 단편화를 해결해주는 방법입니다. 이를 통해 물리적 메모리보다 큰 프로그램을 실행할 수 있게 하고, 메모리를 효율적으로 관리할 수 있도록 도와줍니다. 대표적인 가상 메모리 기법으로는 대표적으로 페이징과 세그멘테이션이 있습니다. 가상 메모리가 필요하게 된 배경 프로그램이 CPU에서 실행되려면 실행에 당장 필요한 부분이 메모리에 올라와 있어야합니다. 여러 프로그램이 동시에 수행되는 시분할 환경에서는 한정된 메모리 공간을 여러 프로그램이 조금씩 나눠서 사용해야 합니다. 따라서 운영체제는 어떤 프로그램에게 어느 정도의 메모리를 할당.. 2024. 4. 5.
교착상태(Deadlock) 목차 교착상태란? 교착상태(Deadlock)란 일어나지 않을 사건을 기다리며 진행을 멈춰버리는 현상입니다. 간단하게 두 프로세스예시를 들어본다면 프로세스 A는 프로세스 B가 사용 중인 자원을 기다리고, 프로세스 B는 프로세스 A가 사용 중인 자원을 기다리고 있는 상태입니다. 이럴 경우 서로 계속 기다리게만 될 것입니다. (교착상태) 비유를 통한 교착 상태 예시 도로에서의 교착상태 앞으로 지나가야하는데 차들이 가로막고 있어 지나갈 수가 없는 상태입니다. 교착상태(Deadlock)를 만드는 네 가지 조건 아래 4가지 조건을 모두 만족하는 경우라면 데드락이 발생합니다. Mutual exclusion(상호 배제) : 리소스를 공유해서 사용할 수 없는 경우(임계구역, CPU, 프린터 등) Hold and wait.. 2024. 4. 5.
동기화(Synchoronization) 목차 동기화(Synchoronization) 동기화란? 동기화는 여러 프로세스나 스레드가 공유 자원에 동시에 접근할 때 발생할 수 있는 문제들을 해결하기 위한 방법입니다. 동기화에는 실행 순서 제어를 위한 동기화와 상호 배제(mutual exclusion)를 위한 동기화가 있습니다. 실행 순서 제어를 위한 동기화 Writer 프로세스는 Book.txt 파일에 값을 저장하는 프로세스이고, Reader 프로세스는 Book.txt 파일에 저장된 값을 읽어 들이는 프로세스라고 가정해 보겠습니다. 이럴 경우, 반드시 Writer 프로세스가 Reader 프로세스보다 먼저 실행되어야지 Reader 프로세스가 올바르게 Book.txt 파일의 값을 읽어올 수 있습니다. 상호 배제(mutual exclusion)를 위한 .. 2024. 4. 4.