본문 바로가기

CS 지식/운영체제15

[운영체제] 메모리 구조 이번 포스팅에서는 메모리 구조에 대해서 상세하게 알아보자 ! ▸ 메모리의 구조를 영역에 따라서 설명▸ 힙(Heap) 영역과 스택(Stack) 영역 차이▸ 메모리의 힙 영역을 너무 크게 잡으면? ✔️ 메모리 구조먼저, 프로세스가 실행되기 위해서는 먼저 프로그램이 메모리에 적재되어야 한다. 프로그램을 실행하게 되면, 하드 드라이브(저장장치)에 저장되어 있는 프로그램을 메모리(RAM)으로 옮긴다. 이때, 운영체제는 각 프로그램이 필요한 만큼의 메모리(RAM) 공간을 할당해준다.  이때 할당된 메모리 공간(RAM)은 크게 코드(Code), 데이터(Data), 스택(Stack), 힙(Heap) 영역으로 나뉜다. ➕ 코드(Code) 영역실행될 프로그램의 실제 코드가 저장되는 영역이다. 텍스트 영역이라고도 부른다. .. 2024. 9. 3.
[운영체제] IPC(Inter Process Communication) IPC(Inter-Process Communication) 은 커널영역(Kernel-mode)에서 하는 프로세스들 간의 통신이다.✔️ IPC가 필요한 이유프로세스는 각각 OS로부터 할당된 독립된 공간에서 실행된다.독립적으로 실행된다는 것은 다른 프로세스에게 영향을 받지 않는다고 말할 수 있다.(↔︎ 스레드는 프로세스 안에서 자원을 공유하므로 다른 스레드로부터 영향을 받는다. ) 각각 독립된 공간을 가진 프로세스 간의 통신을 해야하는 상황에서 필요한 통신이 IPC 통신이다. 프로세스는 커널 영역(Kernel-mode)에서 커널(Kernel)이 제공하는 IPC 설비를 통해 프로세스들 간에 통신(=IPC 통신)을 한다. ✔️IPC 모델(종류)➕ Shared Memory : 공유 메모리  Shared Memor.. 2024. 8. 28.
[운영체제] I/O 처리 방식 : Synchronous/Asynchronous & Blocking/Non-Blocking ✔️ Synchronous(동기) vs Asynchronous(비동기)►Synchronous : 요청이 들어온 순서에 맞게 하나씩 처리하는 방식으로, 요청 후 결과가 와야만 다음 작업이 이루어짐.              ↕︎►Asynchronous : 하나의 요청이 끝나기 전에 다른 요청을 동시에 처리할 수 있는 방식 ►Synchronous (동기)Synchronous(동기)의 경우 요청된 작업이 완료되어야 다음 작업을 수행한다.  ►Asynchronous (비동기)Asynchronous(비동기)의 경우 요청된 작업의 완료 여부를 따지지 않고 바로 다음 작업을 수행한다.호출되는 함수에게 callback을 전달해서 작업을 완료하면 실행하도록 한다.  ➕ Callback : 어떤 이벤트가 발생하거나 특정 .. 2024. 8. 27.
[운영체제] 페이지 교체 알고리즘 운영체제는 주기억장치(Main Memory) 보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용한다. 이를 가상메모리 기법이라고 한다. ✔️ 페이지 교체(page replacement)란?페이지 교체란 ?  페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치(=Main Memory)에 적재되어 있지 않을 시, 해당 페이지를 찾아 주기억장치의 빈 프레임에 로딩해야한다.하지만 이때 빈 프레임이 없을 경우 1)메모리에 올라와 있는 페이지 중 하나를 디스크로 쫓아내(page-out), 2)메모리에 빈 공간을 확보한 후 3)새로운 페이지를 메모리에 올려야한다(page-in).이러한 과정이 페이지 교체(page replacement) 이다. • Victim.. 2024. 8. 26.
[운영체제] Paging(페이징) 과 Segmentation(세그먼테이션) ✔️ 페이징과 세그먼테이션이 필요한 이유어떠한 프로그램을 실행할 때, 프로그램들을 메모리 공간에 연속적으로 할당하게 된다. 만약 여러 프로그램들이 메모리에 할당되고 해제되는 것이 반복되다 보면, 메모리 공간이 조각조각 나뉘게 되어 사용 가능한 메모리 공간이 충분함에도 불구하고 프로그램에 메모리를 할당하는 것이 불가능한 상태가 발생한다.  이러한 현상을 Memory Fragmentation(메모리 단편화) 라고 한다.  고정 분할 기법 : 메인 메모리가 고정된 파티션으로 분할 → 내부 단편화 발생 동적 분할 기법 : 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재 →외부 단편화 발생 내부 단편화 ( Internal Fragmentation ) → 오른쪽 그림에 해당: 메모리를 할당할 때 프로세스.. 2024. 8. 25.
[운영체제] Semaphore(세마포어) & Mutex(뮤텍스) 이전 포스팅에서 Race Condition에 대해서 설명하면서, 공유 자원을 동시에 쓰지 않기 위해 한 번에 하나의 프로세스만 접근하도록 한다는 해결책을 언급하였다.  [운영체제] Race Condition(경쟁 상태)✔️ Race Condition(경쟁 상태) 정의Race Condition(경쟁 상태) 이란?경쟁 상태란 두 개 이상의 쓰레드가 공유자원에 대해 접근하려고 서로 경쟁하는 것이다. 다르게 말하면, 공유 자원에 대해 여러 쓰cse-gr.tistory.com이번 포스팅에서는 그 해결책을 구체적으로 알아보자 ! 공유된 자원에 여러 프로세스가 동시에 접근하면, Race Condition 이라는 문제가 발생하고이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근 할 수 있도록 1) Semaph.. 2024. 8. 24.