본문 바로가기

반응형
SMALL

OS/OS

하이버네이트(Hibernate)란? 하이버네이트를 알기 전에 프로그램이 어떻게 실행되는지를 알아야합니다. 우선 커널은 실행기(Executor)를 통해 프로그램을 실행합니다. 실행기는 기억장치(Storage)에서 exe파일(Windows의 경우)을 가져오고, 커널이 이것을 메모리에 할당해 실행시킵니다. 이처럼 모든 프로그램은 메인 메모리에 로드되어 실행되며, 메인 메모리는 보통 RAM(Random-Access Memory)이라고 부릅니다. 하지만 RAM은 모든 프로그램을 담기엔 너무 작고 비쌉니다. 또한 전원이 나가면 저장된 데이터가 모두 사라지는 휘발성(Volatile) 장치입니다. 그래서 보조기억장치(Secondary storage)가 필요합니다. 자기테이프(Magnetic tapes), 광학디스크(Optical disk), 자기디스크(.. 더보기
멀티스레딩이란? 멀티 스레딩이란? 하나의 프로그램에 동시에 여러개의 일을 수행할 수 있도록 해주는 것입니다. 스레드란 프로세스 내에서 일을 처리하는 세부실행 단위를 말하죠 멀티스레딩의 정의는 스타크래프트 캐리어로 보면 됩니다. 캐리어는 하나의 프로세서이고 그 안의 인터셉터들이 스레드라고 생각하면 됩니다. 캐리어가 죽으면 그 안의 인터셉터가 죽어버리는데, 실제로 프로세스가 죽으면 스레드가 죽어버립니다. 멀티 스레딩의 장점 프로세스를 이용하여 동시에 처리하던 일을 스레드로 구현할 경우 메모리 공간과 시스템 자원 소모가 줄어들게 됩니다. 스레드간의 통신이 필요한 경우에도 별도의 자원을 이용하는 것이 아니라 전역 변수의 공간 또는 동적으로 할당된 공간인 Heap 영역을 이용하여 데이터를 주고받을 수 있습니다. 그렇기에 프로세스.. 더보기
프로세스와 스레드의 차이 오늘은 프로세스와 스레드의 차이를 알아보도록 하겠습니다. 면접에서 단골 질문이죠? 제 생각엔 반드시 알아야하는 개념 두 가지인거 같습니다. 프로세스(Process) 프로세스는 실행 중인 프로그램이 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말합니다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 합니다. 구체적으로 살펴보면 프로세스는 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함합니다. 또한, 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함합니다. 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받습.. 더보기

반응형
LIST