본문 바로가기

SW/Kernel3

메모리구조 초안 : 2023.05.19 프로세스는 생성되면 사용자 영역에 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장된다. (물론 지난 게시글에서 언급했듯, 커널영역에는 PCB 가 생성된다.) 아래 그림의 메모리 address 는 각각의 영역의 위치를 표현하기 위해 가정한 것이니 참고만 하기 바란다. code 영역 (code segment) code 영역은 text 영역이라고 부르기도 한다. 기계어로 이루어진 '명령어'가 저장된다. 즉, 코드 영역에는 '데이터'가 아닌 CPU 가 실행할 '명령어'가 저장되어 있기 때문에 '쓰기'가 금지되어 있다. (read-only space) data 영역 (data segment) 데이터 영역은 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간이다. 예.. 2023. 5. 19.
PCB & Context Switching 초안 : 2023.05.10 보조기억장치에 데이터 형대로 저장되어 있는 프로그램은 실행되어 메인 메모리에 적재되는 순간 '프로세스'가 된다. 프로세스는 사용자가 보는 곳에서 실행되는 것도 있고 보이지 않는 곳에서 실행되는 것도 있는데 전자를 포그라운드 프로세스 후자를 백그라운드 프로세스 라고 한다. 백그라운드 프로세스 중에서도 사용자와 전혀 상호작용하지 않고 맡은 일만 수행하는 프로세스가 있는데 이를 UNIX 운영체제 에서는 '데몬(daemon)' 이라고 하고 윈도우 운영체제 에서는 '서비스(Service)'라고 한다. 수많은 프로세스들이 동시에 실행되지만, CPU 자원은 한정되어 있다. 따라서 프로세스들은 차례대로 돌아가면서 정해진 시간동안 CPU를 사용하고, 시간이 끝나면(타이머 인터럽트가 발생하면).. 2023. 5. 10.
운영체제와 커널(Kernel) - Dual Mode 란? 초안 : 2023.04.15 각각의 프로그램에 필요한 자원을 할당하고, 다른 프로그램들이 올바르게 실행되도록 돕는 프로그램이 바로 운영체제이다. 즉 운영체제도 다른 프로그램과 마찬가지로 메모리에 적재되어 실행된다. 다만 운영체제는 컴퓨터가 부팅될 때 메모리 내의 '커널 영역'에 따로 적재되어 실행된다. 커널 영역을 제외한 나머지 영역, 사용자가 이용하는 응용 프로그램이 적재되는 영역을 사용자 영역이라고 한다. 즉, 운영체제는 커널영역에 적재되어 사용자 영역에 적재된 다른 프로그램들에게 자원을 할당하고 이들이 올바르게 실행되도록 돕는다. 예를들어 각 프로그램들이 실행되면 메모리에 명령어들이 올라가게 되는데, 이들이 겹치지 않도록 적당한 공간에 적재해주는 주체가 운영체제이다. 운영체는 실행된 프로그램은 메모.. 2023. 4. 15.