Computer Science/OS
-
-
Question : OS : KernelComputer Science/OS 2021. 4. 11. 22:31
Kernel과 Shell은 무엇인가요 ? 1. 컴퓨터는 SW와 HW로 나눌 수 있고, SW는 운영체제와 응용 프로그램을 나눌 수 있다. 운영체제는 Kernel과 시스템 프로그램으로 나눌 수 있다. 즉, Kernel은 운영제제의 한 부분이다. 2. 운영체제 역시 하나의 '프로그램'이다. PC에 전원이 켜지면 여러가지 시작 프로그램들이 실행되고 그 중 운영체제 역시 실행된다. 운영체제는 덩치가 큰 프로그램이기 때문에, 효율성을 위해 이러한 프로그램 중 중요하고 항상 필요한 부분에 대해서는 미리 메모리에 적재해둘 필요가 있다. 다시 말해, 운영체제 중 중요하고 매번 사용되는, 메모리에 상주할 필요가 있는 부분을 Kernel이라고 한다. 3. Shell이란 명령어 해석기로, 사용자가 컴퓨터에게 전달한 명령어를 ..
-
Question : OS : MemoryComputer Science/OS 2021. 4. 6. 17:43
프로세스에 할당되는 메모리의 각각의 영역에 대해 설명해주세요 1. code 또는 text 영역은 말 그대로 프로그램 source code가 저장된다. 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역이다. 2. data 영역은 프로그램의 실행과 종료 사이에서 발생하는 전역변수, static 변수, 배열, 구조체 등이 저장된다. 프로그램이 시작될 때 할당되고, 종료될 때 해제된다. 3. stack 영역은 함수 호출과 관계되는 지역변수 또는 매개변수가 저장된다. 함수가 호출되면 할당되고, 함수가 종료되면 해제된다. stack의 크기는 각 프로세스마다 할당되지만, 메모리에 적재된 후에는 크기가 고정된다. 4. heap 영역은 필요에 의해 동적으로 할당되는 영역이다. stack과 heap은 같은 공간을 공유..
-
Question : OS : ProcessComputer Science/OS 2021. 4. 6. 16:49
Process와 Thread의 차이점은 무엇인가요? 1. 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고, 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위이다. 2. 프로그램이라고 하는 실행 파일이 있을 때, 이는 메모리에 올라가지 않은 정적인 상태이다. 이를 실행하는 순간, 해당 파일은 메모리에 올라가 동적인 상태가 된다. 이러한 상태의 프로그램을 프로세스라고 하고, 이 후 여러 프로세스를 동작시키는 데에서 발생되는 데이터 공유, 안정성 등의 문제를 해결하기 위해 더욱 작은 단위가 필요하였고, 그래서 탄생한 개념이 스레드이다. 스레드는 프로세스와 다르게 스레드 간 data, code, heap 영역을 공유하기 때문에 프로세스 개념에서의 데이터 공유에서 발생되는 문제점을 해결할 수 있다..