Programming theory/Computer science(3)
-
[Computer science]메모리 단편화(Fragmentation)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 냉장고 정리를 해본 적이 있나요? 저 같은 경우에는 예전에 자취를 하면서, 꽉 찬 냉장고를 정리한 적이 있습니다. 냉장고 정리를 하고 나니(버린 것이 아닌 내용물들의 재배치만 했습니다.) 꽉 차 보였던 냉장고에 여유공간이 생기게 됐죠. 냉장고 전체를 메모리라고 보고, 냉장고에 들어있는 내용물들을 메모리를 차지하는 데이터라고 생각해보죠. 분명 더이상 들어갈 자리가 없는 냉장고인데 재배치를 하고 나니 여유 공간이 생겼습니다. 이는 애초에 수치적인 공간이 부족했던 게 아니라 일정 크기의 내용물이 들어갈 연속된 공간이 없던 것입니다. 냉장고의 빈곳 일부일부를 다 합치면 김치통 하나 더 들어갈 자리는 있지만, 각각의 부분에는 한 번에 넣을 수 없다는 ..
2022.04.09 -
[Computer science]컨텍스트 스위칭(Context switching, 문맥 교환)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 간혹 그런 일이 있지 않나요? 무언가 일을 하고 있었는데 다른 일이 치고 들어오는 경우요. 이때 치고 들어온 일을 처리하고 이전에 하던 일을 다시 하려고 하면, 무슨 일을 했었는지 어디까지 했는지 잘 기억이 안나는 경우가 있습니다. 이럴 때 내가 무슨 일을 했는지, 어디까지 했는지, 다음은 무얼 하면 되는지 등을 메모라도 해놨다면 참 좋았을 텐데 하고 후회하기도 합니다. 멀티 프로세스 환경의 CPU 또한 마찬가지입니다. CPU가 어떤 프로세스를 실행하고 있는 상태에서 인터럽트가 왔을 때, 우선순위가 높은은 프로세스라면 지금 수행하고 있는 작업을 중단하고 요청 온 프로세스를 수행해야 합니다. 이때 아무런 메모도 없이 수행한다면? 저처럼 아무것도..
2022.04.09 -
[Computer science]프로세스와 스레드(Process & Thread)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 예전부터 프로세스와 스레드를 혼동하는 경우를 많이 봤습니다 다. 사실 둘은 같기도 하고 다르기도 하죠, 비슷하지만 엄연히 다른 프로세스와 스레드. 이 글에서는 각각의 간단한 정의에 대해서 살펴보려 합니다. 프로세스와 스레드(Process & Thread) 프로세스(Process) : 실행되는 프로그램의 작업 단위 스레드(Thread) : 프로세스 안에서 실행되는 흐름의 단위 둘 다 무언가의 단위입니다. 위 설명에서 보듯이, 스레드는 프로세스의 하위 개념이 되겠네요. Process Thread 1 Thread 2 Thread 3 … Thread N 즉, 이처럼 프로세스라는 큰 단위에서 스레드라는 여러 흐름이 있는 것입니다. 메모리의 관점에서 본..
2022.04.08