본문 바로가기
반응형

컴퓨터 공학/운영체제11

[운영체제] 메모리 관리 메모리 관리는 컴퓨터 시스템에 있어서 매우 중요합니다. 왜냐하면 CPU가 작업을 하는 곳이 메모리이기 때문입니다. 이 메모리를 어떻게 관리하느냐가 결국 컴퓨터 성능에 막대한 영향을 미치게 됩니다. 이번에는 메모리 관리의 복잡성과 메모리 관리자의 역할을 알아보려고 합니다. 메모리 관리의 복잡성 CPU는 메모리에 있는 내용을 가져오거나 결과를 저장할 때 메모리 주소 레지스터(MAR)를 사용합니다. 메모리 주소 레지스터(MAR)에 필요한 메모리 주소를 넣으면 데이터를 메모리에서 가져오거나 옮길 수 있습니다. 폰 노이만 구조의 컴퓨터의 메모리는 유일한 작업 공간이며 메모리에 올라와야 실행이 가능합니다. 과거, 일괄 처리 시스템에서는 한 번에 한 가지 작업만 처리했기 때문에 메모리 관리가 어렵지 않았습니다. 하지.. 2021. 10. 19.
[운영체제] 교착상태(Dead Lock, 데드락)이란? 그 해결 방법은? 💎 데드락(Dead lock, 교착 상태)이란? 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태 보통 한정된 시스템 자원을 여러 곳에서 동시에 사용하려고 할 때 발생합니다. 쉽게 예를 들면 목수 A와 B가 있는데 A는 망치를 독점한 채 못을 달라고 하고 B는 못을 독점한 채 망치를 달라고 하는 상황에서 두 목수가 양보하지 않는다면 작업이 진행되지 않는데 이러한 상황을 교착 상태라고 합니다. 시스템 자원 공유 변수 응용 프로그램 위의 3가지를 사용할 때 교착 상태가 발생할 수 있습니다. 💎 Dead lock 필요조건 교착 생태가 발생하기 위해서는 아래의 4개의 조건을 충족시켜야 발생합니다. 상호 배제 : 한 프로세스가 사용하는 자원은 다른 프로세스와 공.. 2021. 10. 9.
[운영체제] 프로세스 간 통신 앞서 프로세스 개념과 스케줄링에 대해 알아보았습니다. 그럼 여기서 서로 독립된 개체인 프로세스들끼리는 어떻게 데이터를 주고받는지 알아보겠습니다. 프로세스 간 통신의 종류 [프로세스 내부 데이터 통신] 하나의 프로세스 내에 2개 이상의 스레드(thread)가 존재하는 경우의 통신이다. 스레드(thread)는 전역 변수나 파일을 이용하여 데이터를 주고받는다. [프로세스 간 데이터 통신] 같은 컴퓨터에 있는 여러 프로세스끼리 통신할 때는 공용 파일 또는 운영체제가 제공하는 파이프를 사용해 통신합니다. [네트워크를 이용한 데이터 통신] 여러 대의 컴퓨터가 네트워크로 연결되어 있을 때, 소켓을 이용하여 데이터를 주고받습니다. 이렇게 소켓(socket)을 이용한 프로세스 간 통신을 네트워킹이라고 합니다. 같은 컴퓨.. 2021. 9. 22.
[운영체제] 스케줄링 종류와 목적 🔷 정의 CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 합니다. 규모에 따라 고수준, 중간, 저수준 스케쥴링으로 구분됩니다. 우리가 어떤 일정을 계획할 때 일 단위로 우선순위에 따라 순서를 정하고 실행하는 과정이라고 생각하면 편합니다. 고수준 스케줄링 가장 큰 틀에서 이루어지는 CPU 스케줄링으로 작업 스케줄링(job scheduling)이라고도 합니다. 시스템 내의 전체 작업 수를 조절하는 것을 말합니다. 여기서 작업은 운영체제에서 다루는 일의 가장 큰 단위로, 1개 또는 여러 개의 프로세스로 이루어집니다. 고수준 스케줄링은 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정합니다. 일단 작업이 시작하면 시스템 자원을 사용하기에 기존 작업에 영향을 미칩니다. 이.. 2021. 9. 19.
[운영체제] 프로세스와 스레드의 차이 프로세스와 스레드는 프로그래밍을 배우면 자주 접하는 단어일 것입니다. 프로그램의 동작 방식을 이해하기 위해서는 기본적으로 알고 있어야 하기 때문에 기술 면접에서도 단골 질문으로 등장합니다. 이번에는 이에 대해 알아보려고 합니다. 프로세스 vs 프로그램 둘의 차이를 알기에 앞서 하나의 중요한 개념을 짚고 가야 합니다. 바로 프로세스와 프로그램의 차이이다. 둘의 차이는 다음과 같습니다. 프로그램 : 저장장치에 저장되어 있는 정적인 상태 (어떤 데이터를 사용하여 어떤 작업을 할지 절차를 적어놓은 것) 프로세스 : 실행을 위해 프로그램이 메모리에 올라온 동적인 상태 즉, 메모리에 올라와 있는 프로그램이 실행되면 프로세스가 됩니다. 비유를 하자면 플래너에 계획을 작성하는 것이 프로그램이고 이를 실제로 행하는 것은.. 2021. 9. 12.
[운영체제] 병렬 처리 기법 컴퓨터에서 병렬 처리는 동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 말합니다. 이번 글에서는 이러한 컴퓨터의 병렬 처리에 있어서 어떠한 기법을 사용하는지 알아봅시다. CPU 내에서 명령어는 제어장치가 처리합니다. 제어장치는 명령어를 가져와 해석 후 실행하고 결과를 저장하는 과정을 계속 반복합니다. 이러한 한 사이클을 스레드(thread)라고 합니다. 스레드를 이루는 각 단계는 CPU의 한 Clock에 한 번씩 이루어집니다. CPU에서 명령어 실행되는 과정은 아래와 같이 4단계로 나눕니다. (경우에 따라 더 세분화하기도 합니다.) 명령어 패치 (IF) : 다음에 실행할 명령어를 명령어 레지스터에 저장 명령어 해석 (ID) : 명령어를 해석 실행 (EX) : 해석한 결과를 토애도 명령어 실.. 2021. 8. 30.
반응형

loading