GitHub

https://github.com/Choidongjun0830

CS 21

3.4 CPU 스케줄링 알고리즘

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄지 결정한다.이 알고리즘들은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, ready queue에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다. 비선점형 프로세스가 스스로 CPU 소유권을 포기하지 않으면 다른 프로세스에게 CPU 소유권이 넘어가지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다.FCFS(First Come, First Serve): 가장 먼저 온 것을 먼저 처리한다. => 길게 수행되는 프로세스 때문에 ready queue에서 오래 기다릴수도 있다.SJF(Shortest Job First): 실행 시간이 가장 짧은 프로세스를 ..

CS 2024.09.19

3.3 프로세스와 쓰레드

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 프로세스는 컴퓨터에서 실행되고 있는 프로그램을 말한다. CPU 스케줄링의 대상이 되는 작업이라는 용어와 같은 의미로 쓰인다.쓰레드는 프로세스와 내 작업의 흐름을 말한다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스와가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 프로세스와 컴파일 과정프로세스는 프로그램이 메모리에 올라 인스턴화가 된 것이다. 컴파일러가 컴파일 과정을 통해 컴퓨터가 이해할 수 있는 기계어로 변역하여 실행할 수 있는 파일을 만들게 된다.  컴파일 과정전처리: 소스 코드의 주석을 제거하고, #include 등 헤더 파일을 병합하여 매크로로 치환한다.컴파일러: 오류처리, 코드 최적화 작..

CS 2024.09.17

3.2 메모리

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.CPU는 그저 메모리에 올라가 있는 것을 실행할 분이다.  메모리 계층레지스터: CPU 안에 있는 작은 메모리, 휘발성이며 속도가 가장 빠르고, 기억 용량이 가장 작음.캐시: L1, L2, L3 캐시. 휘발성이며 속도가 빠르고 기억 용량이 작다. 주 기억 장치: RAM. 휘발성이며 속도와 기억 용량이 보통이다.보조 기억 장치: SSD, HDD. 비휘발성이며, 속도가 느리고, 기억 용량이 크다.메모리는 디스크로부터 일정량의 데이터를 복사하고 임시 저장한다. 이를 필요시마다 CPU에 전달한다. 캐시데이터를 미리 복사해놓는 저장소이자 병목 현상을 줄이기 위한 것이다.=> 메모리와 CPU 사이 속도가 차이가 많이 나서 캐시로 문제를 해결한다.계층과..

CS 2024.09.15

3.1 운영체제와 컴퓨터

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. OS는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 운영체제의 역할 4가지CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에게 할당할지, 프로세스의 생성과 삭제, 자원할당 및 반환 관리메모리 관리: 한정된 메모리를 어떤 프로세스에 얼만큼 할당할지를 관리한다. 디스크 파일 관리: 디스크 파일을 어떤 방법으로 보관할지 관리한다.I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드 등과 컴퓨터 사이에서 데이터를 주고받는 것 관리시스템 콜운영체제가 커널에 접근하기 위한 인터페이스이며, 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용한다. 예시유저 프로그램이 I/O 요청으로 trap을 발동하면..

CS 2024.09.12

2.5 HTTP

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.HTTP/1.0기본적으로 한 연결 당 하나의 요청을 처리한다. 요청 때마다 3-way handshake를 계속 해야함 => RTT 증가RTT 증가 해결 방법이미지 스플리팅: 많은 이미지가 합쳐져 있는 하나의 이미지를 다운 받고, 이를 기반으로 background-image의 position을 이용코드 압축: 코드를 압축해서 개행 문자와 빈칸을 제거하여 코드의 크기를 최소화이미지 Base64 인코딩: 이미지 파일을 64진법으로 이루어진 문자열로 인코딩HTTP/1.1HTTP/1.0에서 발전.매번 TCP 연결이 아니라 한번 TCP를 초기화한 이후에 keep-alive 옵션으로 여러개 파일을 송수신 가능 => 3-way handshake를 매번 할..

CS 2024.09.07

2.4 IP 주소

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. ARP (Address Resolution Protocol)IP 주소 기반으로 통신한다고 알고 있지만, 정확히는 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신한다.ARP는 IP주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 한다.가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환RARP: MAC -> IP동작 방식장치 A가 ARP Request로 IP주소에 해당하는 MAC 주소를 브로드 캐스트로 찾음IP주소에 해당하는 장치가 자신의 MAC 주소를 ARP Reply로 리턴홉 바이 홉 통신IP 주소를 통해 통신하는 과정수많은 서브 네트워크 안에 있는 라우터의 라우팅 테이블 IP를 기반으로 ..

CS 2024.09.06

2.3 네트워크 기기

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. Link (Network Access) 계층은 물리 계층과 데이터 링크 계층으로 나눌 수 있는데, 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기가 있다. 상위 계층을 처리할 수 있는 기기는 하위 계층을 처리할 수 있지만, 하위 계층을 처리할 수 있는 기기는 상위 계층을 처리할 수 없다.  스위치는 여러 장비들을 연결하고 데이터 통신을 중개하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비이다.Application 계층L7 스위치: 로드밸런서이다. 서버 부하를 분산한다. 클라이언트로 부터 오는 요청들을 뒤쪽의 여러 서버로 나..

CS 2024.09.06

2.2 TCP/IP 4계층 모델

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. TCP/ IP 4계층 모델TCP/IP 4계층ApplicationFTP, HTTP, SSH, SMTP, DNS응용 프로그램이 사용되는 프로토콜 계층. 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 계층TransportTCP, UDP, QUIC송신자와 수신자를 연결하는 통신 서비스 제공. 연결 지향 데이터 스트림을 지원하고, 신뢰성, 흐름 제어를 제공애플리케이션 계층과 인터넷 계층 간의 중계 역할TCP패킷 간의 순서를 보장. 신뢰성 있는 전송3-way handshake로 클라이언트와 서버 간의 연결이 성립됨.①SYN 단계: 클라이언트가 서버로 SYN 전송. SYN에는 클라이언트의 ISN이 담김②SYN + ACK 단계: 클라이언..

CS 2024.09.04

2.1 네트워크의 기초

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 네트워크: 노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합좋은 네트워크는 처리량이 많고, 지연 시간이 짧고, 장애 빈도가 낮고, 보안이 강한 것. 처리량: 링크 내에서 성공적으로 전달된 데이터의 양. 얼만큼의 트래픽을 처리했는지.단위는 bps처리량은 트래픽, 네트워크 장치 간의 대역폭, 에러, 하드웨어 스펙에 영향을 받음트래픽: 특정 시점에 링크 내에 흐르는 데이터의 양트래픽이 많아졌다. => 흐르는 데이터가 많아졌다.처리량이 많아졌다. => 처리된 트래픽이 많아졌다.대역폭: 주어진 시간동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수지연 시간: 요청이 처리되는 시간. 어떤 메시지가 두 장치 사이를 왕복하는데 걸리는 시간네..

CS 2024.08.30

1.2 프로그래밍 패러다임

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론프로그래밍 패러다임선언형함수형명령형 객체 지향형절차 지향 선언형과 함수형 프로그래밍선언형 프로그래밍: 무엇을 풀어내는 가에 집중하는 프로그래밍. "프로그램은 함수로 이루어진 것이다"함수형 프로그래밍은 선언형 패러다임의 일종.const list = [1, 2, 3, 4, 5, 11, 12]const ret = list.reduce((max, num) => num > max ? num : max, 0)console.log(ret)reduce()는 배열만 받아서 누적한 결과값을 반환하는 순수 함수순수 함수: 출력이 입력에만 의존하는 함수고차 함수: 함수가 함수를 값처럼 매개변..

CS 2024.08.01
728x90