본문 바로가기

Operating System

(2)
Process와 Thread의 차이 프로세스와 스레드의 차이에 대해서 알아보자. 두개의 차이는 운영체제 수업에서도 아주 중요하게 다루는 주제이다. 또한, 개발자 면접에서도 자주 나오는 주제이다. 해당 주제에 대해서 잘 공부해두면 좋을 것 같다. 1. Thread의 출현 배경 스레드의 출현 배경을 알면, Process의 차이를 더욱 명확하게 알 수 있다. 프로세스의 문제점 1. 프로세스 간 컨텍스트 스위치 오버헤드 CPU가 프로세스A를 실행하다가 B를 실행한다고 하자. 프로세스 A의 컨텍스트를 PCB에 저장하고 B의 컨텍스트를 레지스터에 저장해주어야 한다. 또한, 캐시와 MMU의 TLB도 flush해주어야 한다. 그리고 L1,L2캐시에는 프로세스B의 데이터로 채워준다. 상당히 Time consuming한 작업이다. 2. 프로세스 사이 통신의..
Locality의 관점에서 Quick sort가 Merge sort보다 빠른이유 Quick sort와 Merge sort는 nlogn의 시간복잡도를 가지는 대표적인 정렬 방법이다. 일반적으로 Quick sort가 Merge sort보다 빠르다. 그 이유는 Locality와 관련이 있다. Locality의 개념을 알아보고 왜 Quick sort가 더 빠른지 알아보도록 하자. Locality 지역성(Locality)은 CPU가 짧은 시간 범위 내에 일정 구간의 메모리 영역을 반복적으로 엑세스하는 경향을 말한다. 메모리 내의 정보를 균일하게 엑세스 하는게 아닌, 짧은 시간내에 특정 부분을 집중적으로 참조하는 특성이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 void f() { //간단한 작업을 수행 } void g() { int arr[..