본문 바로가기

독서51

33. 운영체제 [CPU 스케줄링 알고리즘] 33. 운영체제 [CPU 스케줄링 알고리즘] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) CPU 스케줄링 알고리즘 어떤 프로세스를 먼저 처리하는지 결정해 주는 알고리즘이다 비선점형과 선점형으로 나뉜다 비선점형 프로세스가 CPU를 점유하고 있으면, 뺐을 수 없다 즉 프로세스가 CPU를 점유하면, 끝날때까지 다른 프로세스가 CPU를 점유할 수 없다 컨텍스트 스위칭에 인한 부하가 적다 FCFS (First Come First Served) 먼저 들어오는 프로세스를 먼저 처리하는 알고리즘이다 중간에 길게 실행되는 프로세스 때문에, '준비 큐'에서 오래 기다르는 현상 (Convoy Effect)가 발생한다 SJF (Shortest Job First) 실행 시간이 제일 짧은 프로세스부터 실행하는 알고리즘이.. 2023. 3. 18.
32. 운영체제 [공유 자원, 임계 영역] 32. 운영체제 [공유 자원, 임계 영역] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 공유 자원 공유 자원 : Shared resource 여러 프로세스, 스레드가 공동으로 이용하는 모니터, 프린터, 변수, 메모리, 파일, 데이터 등의 자원 경쟁 상태 (Race condition) : 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황 두 개 이상의 프로세스가 동시에 접근을 할 경우, 결과값에 영향을 줄 수 있다 원래는 결과값이 20만원이 아니라 35만원이어야 한다 하지만 프로세스 P1과 프로세스 P2가 동시에 접근하면서, 타이밍이 꼬여 20만원으로 결과값이 나왔다 임계 영역 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 코드 영역 임계 영역 안에서 경쟁 상태 (race condi.. 2023. 3. 17.
31. 운영체제 [멀티 프로세싱, 멀티 스레드] 31. 운영체제 [멀티 프로세싱, 멀티 스레드] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 멀티프로세싱 여러 개의 프로세서가 일을 수행하는 것이다 프로세스 같은 경우, 메모리를 다른 프로세스와 공유를 하지 않는다 하나 이상의 일을 병렬로 처리할 수 있다 프로세스의 메모리 일부에 문제가 생겨도, 다른 프로세스를 이용하여 처리할 수 있어 신뢰성이 높다 웹 브라우저의 멀티 프로세스 아래의 프로세스를 통해 웹 브라우저가 작동이 된다 브라우저 프로세스 주소 표시줄, 북마크, 방향 버튼, 네트워크 요청이나 파일 접근 같은 권한 담당 렌더러 프로세스 웹 사이트의 보이는 모든 것을 제어한다 플러그인 프로세스 웹 사이트의 필요한 플러그인을 제어한다 GPU 프로세스 GPU를 이용해 화면에 그리는 부분을 제어한다.. 2023. 3. 17.
30. 운영체제 [PCB] 30. 운영체제 [PCB] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) PCB (Process Control Block) 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳이다 프로세스의 상태 정보를 저장하는 구조체다 PCB는 프로세스 생성시 만들어지고, 주기억장치에 유지된다 커널 스택의 가장 앞부분에서 관리가 된다 PCB의 구조 프로세스 스케줄링 상태 : ready, wait, running 등, 프로세스가 CPU에 대한 소유권을 얻은 이후의 상태 프로세스 ID : 프로세스의 고유 번호 프로세스 권한 : 컴퓨터 자원 또는 I/O 디바이스에 대한 권한 정보 프로그램 카운터 : 프로그램 카운터, 다음 실행될 명령의 포인터 CPU 레지스터 : 프로세스를 실행하기 위해 저장해야 할 레지스터에 .. 2023. 3. 17.
29. 운영체제 [프로세스, 스레드] 29. 운영체제 [프로세스, 스레드] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 프로세스와 스레드 프로세스는 메모리 상에서 실행 중인 프로그램 (컴퓨터가 어떤 일을 하고 있는 상태) 크롬도 열고, 워드를 열어서 공부를 하며 워드에 공부한 내용을 기록하는 것 스레드는 이 프로세스 안에서 실행되는 흐름 단위 (한 프로세스 내에서 여러 작업들이 동시 진행되는 것) 크롬을 열어서, 동영상을 다운로드 받으면서, 뉴스를 보고, 노래를 듣는 것 스레드는 싱글 스레드 프로세스 또는 멀티 스레드 프로세스를 가지고 있다 스레드는 실행 가능한 가장 작은 단위다 프로세스는 코드, 데이터, 스택, 힙 메모리 영역을 기반으로 작업을 한다 자신만의 고유 공간과 자원을 할당 받아 사용할 수 있다 (다른 프로세스와 통신하기.. 2023. 3. 17.
28. 운영체제 [가상메모리, 스와핑, 페이지폴트, 스레싱, 메모리 할당] 28. 운영체제 [가상메모리, 스와핑, 페이지폴트, 스레싱, 메모리 할당] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 가상 메모리 메모리 관리 기법의 하나로 기계에 실제 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 (주) 메모리로 보이게 만드는 것이다 주로 멀티테스킹 운영 체제에서 사용되고, 주 기억 장치 (RAM) 보다 큰 메모리 영역을 제공하는 방법으로도 사용된다 가상으로 가상 주소 또는 논리 주소가 주어지고, 실제 메모리 상에는 물리 주소 또는 실 주소가 있다 여기서 가상 주소는 MMU(Memory Management Unit), 메모리 관리 장치를 통해 실제 주소로 변환된다 TLB, '페이지 테이블'을 기반으로 가상 주소에서 물리 주소로 변환이 된다 TLB는 메모.. 2023. 3. 16.
27. 운영체제 [메모리, 캐시] 27. 운영체제 [메모리, 캐시] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 메모리 계층 레지스터, 캐시는 CPU 내부에 존재한다 메인 메모리는 RAM을 가리키고, 주기억장치다 일부 하드 디스크의 메모리를 복사해서, 임시 저장 후, CPU에 빠르게 전달을 한 레지스터는 속도가 빠르지만, 용량이 적다 하드 디스크는 속도는 느리지만, 용량이 많다 이런 점들을 보완하기 위해, 메모리 계층 구조를 사용한다 캐시 데이터를 미리 저장해 놓은 임시 저장소이다 빠른 장치와 느린 장치 사이에서 속도 차이를 줄이는 역할을 하는 메모리다 예를 들어서 CPU와 메모리 속도 차이가 많이 나기 때문에, 레지스터를 캐싱 계층으로 둬서, 속도 차이에서 나타나는 병목 현상을 줄인다 메인 메모리도 캐시 메모리와 하드 디스크 .. 2023. 3. 14.
26. 운영체제 [운영체제, 컴퓨터의 요소] 26. 운영체제 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 운영체제 운영체제(OS, Operation System)는 사용자들이 컴퓨터를 더 편리하고 효율적으로 사용할 수 있도록, 컴퓨터의 하드웨어와 소프트웨어 자원을 관리해주는 시스템 소프트웨어다. 운영체제의 역할 자원 관리 : 컴퓨터 시스템 자원을 효율적으로 관리한다 CPU 스케줄링과 프로세스 관리 : CPU 소유권을 프로세스에 할당을 하는 것을 관리한다 여기서 프로세스는, 메인 메모리에 할당 되어, 실행 상태인 프로그램을 말하는 것이다 여러 프로세스가 열려있다면, 운영체제는 CPU 소유권 각각의 프로세스에게 할당을 한다 메모리 관리 : 프로세스에 메모리를 할당하는 것을 관리한다 메모리는 한정적이라서, 효율적으로 할당을 해야 한다 디스크 파.. 2023. 3. 13.
25. 대규모 트래픽 해결방법 25. 대규모 트래픽 해결방법 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 서버 과부하란? 서버에 접속하는 사람들이 폭발적으로 증가하여 트래픽이 급격하게 증가한 경우 이럴 경우 서버의 성능이 저하된다 500 번 대 에러 메세지가 뜬 모니터링 서버 과부하의 원인은 정말 많지만, 그 중에 하나가 자원의 한계점 도달이다 즉 CPU 같은 자원의 사용량이 한계점에 도달했거나, 메모리가 부족할 때 서버 과부하 상태가 된다 그래서 자원들을 모니터링 하면서, 적절하게 용량을 할당을 시켜줄 수 있다 AWS 오토스케일링 cloud watch를 통해 어플리케이션을 모니터링하고, 자동으로 자원의 용량을 조정한다 예) 메모리, GPU, CPU 증가 그 외에 서버를 모니터링 하며, 자원의 용량을 할당시켜준다 모니터링을 .. 2023. 3. 10.