C#/운영체제(5)
-
[운영체제] 교착상태, deadlock
[Deadlock] *데드락의 발생조건 상호 배제 : 한 자원은 한 번에 한 스레드(혹은 프로세스)만이 사용할 수 있어야한다. 점유 대기 : 이미 한 자원이 할당되어 있다면 이를 점유하기 위해 대기하는 프로세스가 있어야한다. 비선점 : 다른 프로세스가 점유하고 있는 자원을 강제로 뺏을 수 없다. 순환 대기 : 각 프로세스가 서로 점유하고 있는 자원을 요구해야 한다. -> 순환구조여야함 데드락이 발생했을 경우 이를 해결하기 위해 크게 4가지 방법이 있다. (예방, 회피, 탐지 및 회복, 무시) 데드락 예방 : 교착 상태 발생 조건 중 하나를 제거함으로써 해결하는 방법 상호 배제 부정 : 여러 프로세스가 공유 자원을 사용할 수 있도록 함 점유 대기 부정 : 프로세스 실행에 필요한 자원을 한꺼번에 모두 할당함..
2022.07.04 -
[운영체제] 프로세스와 쓰레드
지난 포스팅에서 운영체제에 대해 공부했었다. 이어서 보면 좋을거같다 https://chlee200530.tistory.com/147?category=1073541 [운영체제] OS [OS] 운영체제의 가장 주된 목적은 컴퓨터 하드웨어를 관리하는 것이다. 컴퓨터에는 수많은 하드웨어가 존재한다. CPU, 메모리, 키보드, 마우스 등이 있으며 이를 잘 관리해줘야 컴퓨터를 효율적 chlee200530.tistory.com [Process] 실행되고 있는 프로그램을 뜻함. (메모리에 올라가 있는 상태) 메모리에는 여러 프로세스들이 할당되어 있고 이들은 동시에 실행되고 있다. 이를 OS가 어떻게 동시에 실행시켜주고 관리해줄것인지등을 고민해야하고 이때 프로세스의 중요 data들을 담고 있는 PCB를 통해 관리를 한다..
2022.07.04 -
메모리 구조, 바이트 정렬
[메모리 구조] 메모리 영역에 관해 공부하기 전에 프로그램이 어떤식으로 실행되는지 과정을 살펴 보자. 위 이미지는 프로그램의 정보를 읽어 메모리에 로드되는 과정을 보여준다. 프로그램이 실행하게 되면 OS는 메모리에 공간을 할당해준다. 할당해주는 메모리 공간은 4가지가 있다. *메모리 구조 코드 영역 텍스트 영역은 코드를 실행하기 위해 저장되어 있는 영역을 말한다. 흔히 코드 영역이라고도 하는데 프로그램을 실행시키기 위해 구성되는 것들이 저장되는 영역이다. 한마디로 명령문들이 저장되는 것인데, 제어문, 함수, 상수들이 이 영역에 저장된다. 데이터 영역 데이터 영역은 우리가 작성한 전역변수, 정적변수 등이 저장되는 공간이다. 이들의 특징을 보면 보통 메인함수 전에 선언되어 프로그램이 끝날 때까지 메모리에 남..
2022.07.01 -
[운영체제] 메모리 관리, 페이징기법, 세그멘테이션, 가상메모리
[메모리 관리] *Logical address vs Physical address Physical address : 물리 메모리에 실제 올라가는 위치 Logical address : 각 프로세스마다 독립적으로 가지는 주소공간 -> CPU가 보는 주소는 logical address -> 프로그램을 실제 메모리에 올리기 위해 Logical address를 Physical address로 바꿔주는 과정이 필요한데 이를 Address binding이라고 한다. *Address binding 어떤 프로그램이 메모리의 어느 위치에, 즉 어떤 물리적 주소에 load 될지를 결정하는 과정이다. Compile Time binding 이미 컴파일 때 물리적 메모리 주소로 변환되므로 컴파일에 존재하는 주소를 그대로 사용한다..
2022.07.01 -
[운영체제] OS, 스케쥴링
[OS] 운영체제의 가장 주된 목적은 컴퓨터 하드웨어를 관리하는 것이다. 컴퓨터에는 수많은 하드웨어가 존재한다. CPU, 메모리, 키보드, 마우스 등이 있으며 이를 잘 관리해줘야 컴퓨터를 효율적으로 사용할 수 있다. 운영체제는 사용자에게 편의를 제공하는 목적도 가지고 있다. 운영체제가 없다면 위에서 말한 하드웨어에 관한 모든 관리를 사용자가 직접 해야하기 때문에 컴퓨터를 사용하는데 매우 불편할 것이다. 하지만 지금의 컴퓨터는 사용자가 매우 편하게 사용할 수 있다. 운영체제의 기능에는 CPU, 메모리등의 자원관리, 스케줄링 기능 제공, 각종 하드웨어의 관리 및 제어등이 있으며 이론적으로 운영체제의 목적은 다음과 같은 4가지다. 쉽게 정의하자면 운영체제는 컴퓨터의 성능을 높이고, 사용자에게 편의성을 제공하는..
2022.07.01