운영체제
-
[OS] 페이징 주소 변환과 페이지 테이블 엔트리운영체제 2023. 4. 29. 11:16
페이징 주소 변환과 페이지 테이블 엔트리 알아보기 지난 시간에 가상 메모리 관리를 위한 페이징에 대해서 공부했습니다. 페이징에 대해서 알아보려면 아래 포스팅을 참고하시면 됩니다. 페이징으로 가상 메모리 관리하기, 페이지 테이블, TLB 오늘은 페이징에서 주소 변환하는 방법과 페이지 테이블 엔트리라는 것을 공부해 볼겁니당. 🧐 🍊 페이징에서의 주소 변환페이징 시스템에서 모든 논리주소는 기본적으로 페이지 번호 page number와 변위 offset으로 이루어져 있습니다. 예를 들어, 32비트 주소인 경우 N비트가 페이지 번호라면 32-N비트는 변위로 이루어진 것이죠. 여기서 변위는 접근하려는 주소가 프레임의 시작 번지로부터 얼만큼 떨어져 있는지를 알기 위한 정보입니다. 즉, 논리 주소 는 페이지 테이블을 ..
-
[OS] 페이징으로 가상 메모리 관리하기, 페이지 테이블, TLB운영체제 2023. 4. 23. 09:01
페이징으로 가상 메모리 관리하기 프로세스를 메모리에 연속적으로 할당하는 방식의 문제점 두 가지 1. 외부 단편화 2. 메모리보다 큰 프로그램은 적재할 수 없음 첫 번째는 이전 포스팅에서 다룬 외부 단편화 문제입니다. 두 번째는 4GB 메모리가 설치된 컴퓨터로는 4GB 이상의 프로그램을 실행할 수 없다는 문제입니다. 이러한 문제들은 가상 메모리(virtual memory)라는 것을 이용하면 해결할 수 있습니다. 오늘은 이 가상 메모리 관리 기법으로 대표적인 페이징에 대해서 알아볼게요. 🧐 🍊 페이징이란 메모리와 프로세스를 일정한 단위로 잘라서 적재하는 방식을 말합니다. 아래 그림에서 프로세스B와 같이 불연속적으로도 적재가 가능하기 때문에 외부 단편화는 발생하지 않습니다. 페이징은 프로세스의 논리 주소 공간..
-
[OS] 스와핑과 연속 메모리 할당, 외부 단편화운영체제 2023. 4. 16. 11:08
스와핑과 연속 메모리 할당, 외부 단편화를 알아보자 운영체제의 가장 핵심적인 역할은 프로세스 관리와 메모리 관리입니다. 오늘은 그 중 하나인 메모리 관리에 대해서 공부해 볼겁니당.🧐 이번 포스팅에서는 기본적인 메모리 관리 기법, 스와핑과 메모리에 프로세스를 할당하는 방식, 그리고 연속 메모리 할당의 부작용인 외부 단편화를 공부해봅시당. 🍊 연속 메모리 할당 방식 프로세스들이 메모리 내에 배치될 때 연속적으로 배치되는 것을 연속 메모리 할당이라고 합니다. 모든 프로세스들이 그 크기만큼 메모리 주소를 할당받아 연속적으로 배치되는 것입니다. 🍊 스와핑이란? 스와핑이란, 메모리에서 현재 사용되지 않는 프로세스가 있을 경우 해당 프로세스의 메모리를 임시로 보조 기억 장치로 옮겨두는 것을 말합니다. 운영체제는 이와..
-
[OS] 교착 상태(Deadlock) 해결 방법 _데드락운영체제 2023. 4. 9. 14:43
교착 상태(Deadlock) 해결 방법 지난 포스팅에서 프로세스 교착 상태에 대해 배웠습니다. 운영체제는 교착 상태를 회피할 수도 있고 예방할 수도, 검출 후 회복할 수도 있습니다. 오늘은 교착 상태를 해결하는 각각의 방법에 대해 공부해볼게요. 🧐 교착 상태 예방 교착 상태가 발생하려면 필요 조건이 네 가지가 있었죠. 프로세스들에 자원을 할당할 때 상호 배제, 점유와 대기, 비선점, 원형 대기 네 가지 조건이 모두 만족되었을 때 교착 상태가 발생할 가능성이 생깁니다. 교착 상태를 예방하는 것은 이 네 가지 중 하나라도 만족시키지 않게 할당하는 것입니다. 🍊 상호 배제 없애기 자원의 상호 배제를 없앤다는 말은 모든 자원을 공유 가능하게 만든다는 말고 같습니다. 다만 이 방식대로 이론적으로는 교착 상태를 없..
-
[OS] 데드락(교착 상태)과 자원 할당 그래프운영체제 2023. 4. 8. 12:11
데드락과 자원 할당 그래프 오늘은 프로세스 실행 과정에서 발생하는 데드락에 대해서 알아보고 자원 할당 그래프, 교착 상태의 발생 원인을 알아봅시당. 🧐 🧶 데드락이란? 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상을 데드락(dead lock)이라고 합니다. 예를 들어, 게임 프로세스는 자원 A를 점유한 채 웹 브라우저 프로세스가 점유하고 있는 자원 B의 사용이 끝나길 기다리고, 웹 브라우저 프로세스는 자원 B를 점유한 채 게임 프로세스의 자원 A 사용이 끝나길 기다리는 상황을 교착 상태라고 볼 수 있습니다. 두 프로세스는 상대방이 가진 자원을 기다리기만 하다가 멈춰버리는 것입니다. 🧶 자원 할당 그래프 교착 상태는 자원 할당 그래프(resource-allocation-graph)를 통해 단순하게..
-
[OS] Linux IPC 프로세스간 통신에 대해서 알아보자운영체제 2023. 4. 4. 13:40
[OS] Linux IPC 프로세스간 통신에 대해서 알아보자 오늘은 리눅스 IPC에 대해서 알아볼겁니당. 운영체제 수업 과제이기도 해서 겸사겸사 자세히 알아보겠습니다 🧐 IPC란? IPC는 "Inter-Process Communication"의 약어로, 프로세스 간에 데이터를 주고받는 기술이나 방법을 말합니다. IPC는 동일한 컴퓨터 내에서 또는 네트워크 상에서 실행 중인 다른 프로세스와 데이터를 주고받을 수 있게 해줍니다. IPC를 사용하면 프로세스 간에 데이터를 안전하고 효율적으로 공유하거나 서로 통신할 수 있습니다. 예를 들어, 운영 체제에서 실행 중인 여러 개의 프로세스가 있을 때, IPC를 사용하여 이러한 프로세스 간에 데이터를 전송하거나 공유할 수 있습니다. IPC의 종류 1) PIPE (익명..
-
[OS] 프로세스 동기화 기법, 뮤텍스 락, 세마포, 모니터운영체제 2023. 4. 2. 14:27
프로세스 동기화 기법 지난 포스팅에서 프로세스 동기화에 대해 알아보았습니다. 오늘은 프로세스 동기화를 위한 대표적인 도구들인 뮤텍스 락, 세마포, 모니터를 알아볼게요 🧐 🧶 뮤텍스 락 뮤텍스 락은 임계 구역(동시에 접근하면 안되는 자원)에 동시에 접근하지 않도록 만드는 도구입니다. 즉, 상호 배제를 위한 동기화 도구입니다. 임계 구역에 진입하는 프로세스는 뮤텍스 락을 이용해 임계 구역에 자물쇠를 걸어둠으로써 자신이 현재 임계 구역에 있음을 알립니다. 다른 프로세스는 임계 구역에 잠겨 있다면 기다리고, 잠겨 있지 않다면 임계 구역에 진입할 수 있습니다. 뮤텍스 락 단순하게 구현하기 자물쇠 역할 - 프로세스들이 공유하는 전역 변수 lock 임계 구역을 잠그는 역할 - acquire 함수 임계 구역의 잠금을 ..
-
[OS] 프로세스 동기화운영체제 2023. 4. 1. 13:24
프로세스 동기화동시다발적으로 실행되는 프로세스들은 공동의 목적을 올바르게 수행하기 위해 서로 협력하며 영향을 주고 받기도 합니다. 이렇게 협력하여 실행되는 프로세스들을 실행 순서와 자원의 일관성을 보장해야 하기에 반드시 동기화(synchronization)되어야 합니다. 오늘은 동기화의 개념에 대해 알아보고, 프로세스를 동기화하지 않을 경우 발생할 수 있는 문제들을 통해 동기화가 필요한 이유를 알아볼거예요 🧐 동기화의 의미프로세스 동기화란 프로세스들 사이의 수행 시기를 맞추는 것을 말합니다. 여기서 수행 시기를 맞춘다는 것의 의미는 크게 아래 두 가지를 나타냅니다. 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 🍊 실행 ..