728x90
반응형

분류 전체보기

728x90
반응형
Embedded system/[KOCW] 운영체제

[운영체제] Memory Management 3 (연속 할당, 고정 분할 방식/가변 분할 방식, 외부 조각/내부 조각

물리적 메모리는 낮은 주소 부분에 운영체제 커널이 항상 상주하고 있고, 높은 주소 영역에는 사용자 프로그램들이 올라가 있다. 사용자 프로그램이 올라간 영역을 관리하는 방법은 크게 두 가지로 나누어 볼 수 있다. 프로그램이 메모리에 올라갈 때 통째로 메모리에 올라가는 방식인 연속 할당과 프로그램을 구성하는 주소 공간을 같은 크기의 페이지 단위로 잘게 쪼개서 페이지 단위로 메모리에 올리는 방법인 불연속 할당이 있다. ● 연속 할당 (Contiguous Allocation) ✓ 고정 분할 (Fixed Partition) 방식 물리적 메모리를 몇 개의 영구적 분할 (Partition)로 나눔 분할의 크기가 모두 동일한 방식과 서로 다른 방식이 존재 분할 당 하나의 프로그램 적재 융통성이 없음 : 동시에 메모리에..

Embedded system/[KOCW] 운영체제

[운영체제] Memory Management 2 (동적 로딩, 동적 링킹, 오버레이, 스와핑)

Some Terminologies Dynamic Loading Dynamic Linking Overlays Swapping ● 동적 로딩 (Dynamic Loading) 프로그램 전체를 메모리에 올리는 것이 아니라 필요할 때(해당 루틴이 불려질 때마다) 해당 루틴을 메모리에 올리는 것이다. 프로그램은 방어적으로 만들어지기 때문에 프로그램 전체가 균일하게 사용되는 게 아니다. 프로그램 중에서 상당 부분은 거의 사용되지 않는 오류 처리 루틴이 많으며 주로 사용되는 부분은 한정적이다. 좋은 프로그램일수록 오류 루틴이 많다. 그래서 미리 올려놓는 게 아니라 오류가 생기면 그때 메모리에 올리는 것과 같은 방식을 Dynamic Loading이라고 한다. ​ 프로그램을 실행시키면 통째로 메모리에 올라가지 않고 당장 ..

Embedded system/[KOCW] 운영체제

[운영체제] Memory Management 1 (Logical vs Physical Address, 주소 바인딩, MMU)

● Logical Address vs Physical Address (논리적 주소 vs 물리적 주소) 프로그램이 시작되면 독자적인 주소 공간이 형성된다. 물리적인 메모리 내에서 3GB~4GB 주소 공간에는 운영체제 커널이 올라가 있고, 1GB~3GB 주소 공간에는 여러 사용자 프로그램들이 섞여서 올라가게 된다. 프로그램이 실행되려면 물리적인 메모리 어딘가로 올라가야 하고 그렇게 되면 주소가 바뀌게 된다. 프로그램이 물리적인 메모리에 어디로 올라갈지 주소를 결정하는 것을 주소 바인딩이라고 한다. ​ Symbolic Address 프로그래머가 프로그램을 만들 때, 특정 변수에 값을 저장하고 그 변수를 메모리 몇 번지에 저장하라고 하지 않는다. 또한, 변수에 데이터를 저장한 후 함수를 호출할 때, 함수 이름을..

Embedded system/[KOCW] 운영체제

[운영체제] 교착 상태 (Deadlock)

● 교착 상태 (Deadlock) 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 위의 그림은 사거리가 막혀있는 상황이다. Deadlock이란 일련의 프로세스들이 서로가 가진 자원을 기다리면서 잠들어 있는 상태를 의미한다. 자원이라는 것은 하드웨어 자원일 수도 있고 소프트웨어 자원일 수도 있다. 예를 들어, 하드웨어 자원일 경우 tape drive 두 개가 있다고 했을 때, 하나의 tape drive에서 읽어 다른 tape drive에다가 copy를 하고 싶다고 하자. 두 프로세스가 각각 tape 두 개의 자원을 가져야 읽고 쓰는 행위를 할 텐데, 상대방이 가진 자원을 서로 계속 요구하게 되면 프로세스 진행이 되지 않는다. 소프트웨어 자원일 경우에는 프로세스 0 ..

Embedded system/etc

[Ubuntu] Extended Partition 및 Swap Partition 생성

Extended Partition 생성 1. 파티션 확인 후 2. 저장 Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8). 3. init 0 입력하여 재부팅 Swap Partition 생성 Extended Partition 생성과 같은 방식으로 진행한다. 파티션 공간이 다 사용중이기 때문에 Logical로 확장 파티션에서 파티션 생성하며 크기는 Default로 설정해줌 1. 파티션 확인 2. 현재 파티션만 생성했을 뿐 ..

Embedded system/[KOCW] 운영체제

[운영체제] 프로세스 동기화 4 (Producer-Consumer, Readers-Writers, Dining-Philosopgers 식사하는 철학자 문제, Monitor)

2022.12.27 - [Operating System] - [운영체제] 프로세스 동기화 1 (Race Condition/경쟁 상태) [운영체제] 프로세스 동기화 1 (Race Condition/경쟁 상태) ● 데이터의 접근 데이터는 Storage Box에 저장되어 있고 그 데이터를 가지고 Execution Box 위치에서 연산 작업을 한 후 다시 원래 위치인 Storage Box에 저장한다. 이렇게 데이터를 읽고 연산/수정 후 결 rannnneey.tistory.com 2023.01.04 - [Operating System] - [운영체제] 프로세스 동기화 2 (Critical Section, Race condition) [운영체제] 프로세스 동기화 2 (Critical Section, Race con..

Embedded system/[KOCW] 운영체제

[운영체제] 프로세스 동기화 3 (Semaphore, Block & Wake-up, DeadLock, Starvation)

2022.12.27 - [Operating System] - [운영체제] 프로세스 동기화 1 (Race Condition/경쟁 상태) [운영체제] 프로세스 동기화 1 (Race Condition/경쟁 상태) ● 데이터의 접근 데이터는 Storage Box에 저장되어 있고 그 데이터를 가지고 Execution Box 위치에서 연산 작업을 한 후 다시 원래 위치인 Storage Box에 저장한다. 이렇게 데이터를 읽고 연산/수정 후 결 rannnneey.tistory.com 2023.01.04 - [Operating System] - [운영체제] 프로세스 동기화 2 (Critical Section, Race condition) [운영체제] 프로세스 동기화 2 (Critical Section, Race con..

Embedded system/etc

[VirtualBox] 고정 할당 디스크 저장 공간 늘리기

가상 머신을 사용하다가 저장공간이 부족하다는 메시지가 나왔다. 처음 디스크를 할당할 때 고정 할당을 이용하여 디스크의 크기를 고정하였다. 근데 이 용량이 가득 차서 발생하는 메시지이다. 디스크 저장 공간을 늘려주기 위해서 아래와 같이 [파일]-[도구]-[가상 미디어 관리자]에 들어간다. 저장 공간을 늘려줄 vdi를 선택하면 아래 하단에 속성이 나타난다. 30GB라고 할당되어 있는 걸 200GB로 늘려주려고 했는데.. 실패했다. 아래와 같이 resizeing이 불가하다는 메시지가 떴는데, 할당 방식이 고정 할당으로 설정되어 있어서 동적 할당으로 설정을 해줘야 한다. 그런데 찾아보니 동적 할당 방식으로 설정된 디스크는 설정 변경만으로는 바꿀 수 없다고 한다. 그래서 고정 할당으로 설정된 디스크는 복사해서 다..

728x90
반응형
라닝
'분류 전체보기' 카테고리의 글 목록 (7 Page)