본문 바로가기

운영체제5

프로세스 (Process) 오늘의 주제는 프로세스!! 대부분 '프로세스와 스레드' 라는 주제의 글을 많이 볼 수 있는데, 저는 일단 프로세스를 공부하면서 연계되는 모든 과정을 최대한 나무처럼 뻗어나가면서 알아보려고 합니다. 즉, 제목은 프로세스 지만.... 내용을 보면.. 프로세스가 뭔지부터 시작해서 프로세스의 상태, PCB, fork() 등등.... 까지 들어갈 예정이랍니다. 정리해보면 아래 정도를 다룰 수 있겠네요😂 어우 진짜 CS는 알면 알수록 어디가 끝인지 모르겠지만 일단 오늘은 저정도만 보겠습니다. 아래 내용은 쉽게 배우는 운영체제 라는 책을 참고해서 작성했습니다 :) 프로그램? 프로세스? 뭐가 다른거야? 일단 프로그램은 하드디스크 같은 저장장치에 저장되어있는 정적인 상태를 말합니다. 어떠한 데이터를 사용해서 어떤 작업을.. 2021. 5. 19.
메모리 단편화 (Memory Fragmentation) 메모리 단편화가 뭐지? 먼저 컴퓨터를 공부하는 사람이라면 주기억장치에 대해 들어본 적 있죠? 주기억장치는 CPU가 직접 접근하여 처리할 수 있는 고속의 기억장치 (Memory) 로, 현재 수행되는 프로그램과 데이터를 저장하고 있습니다. 종류로는 ROM과 RAM이 있죠. 이 주기억장치에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태를 메모리 단편화가 발생했다고 합니다. 그리고 이 메모리 단편화는 내부 단편화와 외부 단편화로 구분할 수 있습니다. 내부 단편화 (Internal Fragmentation) 메모리를 할당할 때, 프로세스가 필요로 하는 크기보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 상황을 말합니다. 예를 들어,.. 2021. 4. 14.
DeadLock (교착 상태) 교착상태란? 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하여 무한정 기다리게 되는 현상을 데드락(DeadLock). 즉, 교착 상태 라고 합니다. 여러 개의 작업이 동시에 실행되는 멀티 프로세스, 멀티 스레드 프로그래밍 환경에서 발생할 수 있는 이슈입니다. 교착 상태에 대해 알아볼 때면 자주 등장하는 예시가 있는데요. 바로, 식사하는 철학자들 입니다. '식사하는 철학자들'은 운영체제의 교착 상태를 설명하기 위해 다익스크라가 만든 문제라고 합니다. 그 내용은 바로 이렇습니다. 5의 철학자들이 원형 식탁에 둘러앉아 식사를 하는데, 철학자들 사이에는 포크가 하나씩 놓여 있다. 철학자들이 식사를 하기위해서 지켜야 하는 규칙이 있는데, 바로 아래와 같다. 1. 왼.. 2020. 12. 21.
버퍼, 캐시, 레지스터 (Buffer, Cache, and Register) 캐시와 버퍼, 그리고 레지스터는 데이터를 임시적으로 저장한다는 공통점이 있습니다. 그렇다면 어떤 경우에 어떤 것을 사용하게 될까요? 그리고 각자 어떤 특징이 있을까요?? 캐시(Cache) 먼저 캐시는 속도가 빠른 장치(CPU)와 느린 장치(메인 메모리) 사이에서 속도 차이에 따른 병목현상을 줄이기 위한 범용 메모리를 뜻합니다. 즉, 어떤 시스템 내에서 데이터의 집중적인 사용으로 인해 전체 시스템에 절대적인 영향을 미치는 부분의 사용 빈도가 늘어나 그 부분의 성능이 저하되어 전체 시스템이 마비되는 현상을 줄이기 위한 것입니다. 캐시는 자주 사용하는 데이터나 값을 복사해 놓는 임시 저장소라고 생각할 수 있는데, 이때 캐시의 접근 시간에 비해 원래 데이터(서버의 균일한 api 데이터 등)를 접근하는 시간이 오.. 2020. 10. 3.
커널 (Kernel) 우리가 항상 운영체제를 공부하다 보면 자주 볼 수 있는 단어가 있다. 바로, '커널(Kernel)' 이다. 뭐만 하면 커널에 의해서 관리된다. 커널에 의해 보호된다. 어쩌구 저쩌구..... 도대체 커널이 뭐길래, 이렇게 자주 언급될까??? 커널이란, 프로세스/메모리/저장장치/입출력 시스템 등을 관리하는 운영체제의 핵심적인 기능을 모아놓은 프로그램이다. 그만큼 운영체제의 핵심이라고 할 수 있으며, 운영체제의 성능은 커널이 좌우하게 된다. 컴퓨터가 부팅하는 순간 커널 코드가 메모리에 올라가고, 다른 프로그램과 다르게 항상 메모리에 상주(Memory Resident)한다. 여기서 잠깐 운영체제를 말하자면, 운영체제는 크게 커널과 인터페이스로 나눌 수 있는데 인터페이스는 커널에 사용자의 명령을 전달하고 실행 결.. 2020. 9. 3.