본문 바로가기
신입 개발자의 취업기/면접 질문 대비

컴퓨터 구조 및 OS에 관련된 질문들

by 번데기 개발자 2018. 4. 3.
반응형

프로세스와 스레드의 차이점을 설명해보세요.

프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고, 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위 입니다. 프로세스는 운영체제로부터 메모리, 주소공간등을 할당받고 쓰레드는 할당받은 자원들을 내부 스레드끼리 공유하면서 실행됩니다. 

쓰레드를 사용하는 이유는 운영체제에서 더 효율적으로 시스템 자원을 관리하기 위해 사용된다고 할 수 있습니다.멀티 프로세스로 진행되는 작업을 멀티 쓰레드로 수행하게 되면 시스템 콜이 줄어들기 때문에 자원을 효율적으로 관리 할 수 있고 프로세스의 통신비용보다 쓰레드간의 통신 비용이 적다는 이점도 있습니다.

단 쓰레드간의 자원공유는 전역변수를 이용하므로 동기화 문제에 신경을 써야하며 멀티스레드 프로그래밍은 프로그래머의 주의를 요구합니다.




스택과 큐의 차이점에 대해 설명하시오. 

스택은 LIFO의 구조로 나중에 온 사람이 먼저 일을 처리하는 구조로 되어있습니다.스택은 주로 프로그램상에서 지역변수와 매개변수를 저장하는 용도로 사용됩니다.스택 영역에 할당될 메모리의 크기는 컴파일 타임에 결정됩니다.

큐는 FIFO구조로 먼저 온사람이 먼저 일을 처리하는 구조로 되어있습니다.



힙 영역과 스택영역의 차이점을 설명하시오. 
(메모리 구조에 대한 이해)

프로그램이 실행되기 위해 프로그램이 메모리에 로드가 되어야합니다.따라서 운영체제에서 프로그램의 실행을 위해 다향한 메모리 공간을 제공합니다.코드,데이터,스택,힙 영역이 할당되고 각 역활은 다음과 같습니다.

코드 :  실행할 프로그램의 코드가 저장되는 텍스트 영역입니다. CPU는 코드영역에서 저장된 명령어를 하나씩 가져가서 처리합니다.

데이터 :  전역변수와 정적변수가 이해 해당됩니다. 프로그램의 시작과 함께 할당되며 프로그램이 종료되면 소멸됩니다.

스택   :  스택영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역입니다. 함수의 호출과 함께 할당되며, 함수의 호출이 종료될때 해제됩니다.

힙      :  힙 영역은 사용자가 직접 관리할 수 있는 메모리 영역입니다. 힙 영역은 사용자에 의해 메모리공간이 동적으로 할당되고 해제됩니다.








반응형