[크래프톤 정글 3기] 2/27(화) TIL

ClassBinu·2024년 2월 27일
0

크래프톤 정글 3기 TIL

목록 보기
119/120

스케줄링

CPU 자원은 한정적임. 그래서 OS를 각 프로세스가 적절하게 처리될 수 있도록 스케줄링 알고리즘을 통해 프로세스를 동시적으로 처리함.

준비 큐에 있는 대기 상태 프로세스 중 어떤 프로세스를 다음으로 실행(디스패치)할지 결정

일정 시간이 지나면 인터럽트가 발생해 프로세스가 준비 큐로 들어가서 준비 상태가 된다.

I/O가 발생하면 인터럽트가 발생해서 프로세스가 대기 큐로 들어 간다. I/O가 완료되면 프로세스가 준비 큐로 들어간다.

fork()가 호출되면 자식 프로세스가 생성되고, 자식 프로세스는 준비 큐로 들어간다.

스와핑은 프로세스 스케줄링의 일부로 작동한다.
문맥 교환 시 해당 프로세서가 적재되어 있지 않으면 스왑 인, 이때 공간이 부족하면 준비 상태인 프로세스를 스왑 아웃 시킴.

선점형 vs 비선점형

선점형: 다른 프로세스가 기존 실행중인 프로세스를 대체할 수 있음.
(문맥 교환 오버헤드 발생)
비선점형: 실행 상태의 프로세스를 다른 프로세스가 대체할 수 없음.
(다른 프로세스 대기 시간이 길어짐)

'선점'을 빼앗아서 자리를 차지하는 거라고 기억하면 됨!

메모리

논리 주소 -> mmu -> 물리 주소

메모리 할당

  1. 연속 메모리 할당: 프로세스 하나를 온전하게 할당
  2. 비연속 메모리 할당: 프로세스를 쪼개서 할당(페이징, 세그멘테이션)

단편화

내부 단편화
외부 단편화

외부 단편화를 해결하는 방법: 메모리 압축

페이징

논리 메모리의 단위: 페이지
물리 메모리의 단위: 프레임

가상 메모리

프로세스 일부만 물리 메모리에 적재하는 것
(프로세스 전체가 물리 메모리에 적재되지 않아도 실행에 문제가 없는 점에 착안)

페이지 폴트

페이지 폴트 발생: 프로세스가 어떤 데이터에 접근하려 할 때, 해당 데이터를 담고 있는 페이지가 물리 메모리에 없는 경우, CPU는 페이지 폴트(page fault)라는 인터럽트를 발생시킵니다. 이는 메모리 관리 유닛(MMU)에서 발생하는데, MMU는 프로세스의 가상 주소를 물리 주소로 변환할 때 사용하는 페이지 테이블을 참조하여 이를 감지합니다.

운영 시스템의 개입: 페이지 폴트 인터럽트가 발생하면, 실행 중이던 프로세스는 일시 중단되고 제어권이 운영 시스템(OS)으로 넘어갑니다. OS는 페이지 폴트를 처리하기 위해 필요한 작업을 수행합니다.

디스크에서의 페이지 검색: OS는 해당 페이지가 디스크 상의 어디에 위치해 있는지를 확인합니다. 이는 보통 스왑 영역(swap space) 또는 프로세스의 실행 파일, 메모리 매핑된 파일 등에 저장되어 있습니다.

물리 메모리에 공간 확보: 필요한 페이지를 물리 메모리로 가져오기 전에, 충분한 공간이 있는지 확인합니다. 만약 메모리가 가득 차 있다면, 페이지 교체 알고리즘(예: LRU, FIFO 등)을 사용하여 어떤 페이지를 스왑 아웃할지 결정하고, 해당 페이지를 디스크의 스왑 영역으로 이동시킵니다.

페이지를 물리 메모리로 로드: 이제 OS는 디스크에서 해당 페이지를 찾아 물리 메모리의 할당된 프레임으로 로드합니다. 이 과정은 디스크 I/O를 필요로 하며, 상대적으로 시간이 많이 소요됩니다.

페이지 테이블 업데이트: 페이지가 물리 메모리로 로드되면, OS는 페이지 테이블을 업데이트하여 가상 주소와 물리 주소 간의 새로운 매핑을 반영합니다. 이로써 프로세스가 다시 해당 데이터에 접근할 때, 직접 물리 메모리에서 찾을 수 있게 됩니다.

프로세스 재개: 모든 처리가 완료되면, 페이지 폴트를 일으킨 명령어를 다시 실행하기 위해 프로세스의 실행을 재개합니다. 이번에는 필요한 데이터가 메모리에 있으므로, 프로세스는 중단 없이 계속 실행될 수 있습니다.

스레싱

스와핑으로 인해 오버헤드가 발생하여 CPU 이용률이 급격히 떨어지는 것

스레싱 해결 방법

워킹 세트 설정: 지역성을 기반으로 자주 사용하는 페이지 저장
-> 페이지 폴트가 빈번하게 발생하는 현상을 방지

캐시 메모리

CPU와 메민 메모리 간에 데이터 접근 시 속도 차이 줄임
지역성을 바탕으로 캐싱 대상을 결정함.

지역성

시간 지역성: 최근 참조한 내용을 다시 참조할 가능성이 높다.
공간 지역성: 실제 참조한 주소 근처의 내용을 참조할 가능성이 높다.

임계 영역

임계 영역(critical section)은 메모리 상의 특정 위치를 가리키는 것이 아니라, 멀티 스레딩 환경에서 동시에 실행되면 안 되는 코드의 일부를 의미


네트워크 계층

OSI 7계층

네트워크 통신 과정을 7계층으로 나눈 네트워크 표준 모델
송신부 -> 수신부

각 계층 별로 헤더가 붙어 캡슐화되어 하위 계층으로 내려감.

  • 응용
  • 표현
  • 세션
  • 전송
  • 네트워크
  • 데이터 링크
  • 물리

TCP/IP 4계층

인터넷 통신 네트워크 프로토콜
TCP: 전송 제어 프로토콜
IP: 인터넷 프로토콜

  • 응용: 사용자와 소프트웨어 연결. 메시지
  • 전송: 데이터 신뢰성 보장. 포트 번호로 응용 프로그램 간 연결. 세그먼트
  • 인터넷: 최종 목적지까지 도착. 패킷
  • 네트워크 인터페이스: 데이터를 전기 신호로 변환하여 MAC으로 데이터 전달. 프레임

IP 주소

IPv4 (인터넷 프로토콜 버전 4)

32비트. 약 42억 개의 주소 할당 가능.
네트워크부 + 호스트부
네트워크는 특정 네트워크, 호스트는 해당 네트워크 안의 특정 장치

서브넷 마크스를 ip 주소와 and 연산을 하면 네트워크부와 호스트부를 추출할 수 있음.

서브네팅을 통해 아이피 주소를 실제 네트워크 크기에 맞게 할당할 수 있어서 더 효율적으로 사용할 수 있게 됨.
(초기에는 대충 크기별로 나눠놓은 클래스를 사용함.)

IPv6 (인터넷 프로토콜 버전 6)

128비트

8개의 16진수 그룹, 각 그룹은 4개의 16진수
연속된 0의 그룹은 ::으로 축약

2001:0db8:85a3:0000:0000:8a2e:0370:7334

0개의 댓글