CS

📚 CS/네트워크

[MDN] HTTP (1) : 발전 흐름과 연결 관리

Mdn web docs - HTTP를 통해 학습한 내용을 정리한 글입니다. 개요 HTTP(하이퍼텍스트 전송 프로토콜)은 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 계층 프로토콜이다. 클라이언트의 요청에 따라 통신하는 클라이언트-서버 모델을 따르며, 이전 요청의 세션 상태를 유지하지 않는 Stateless 프로토콜이다. * 애플리케이션 계층 통신 네트워크에서 호스트가 사용하는 트로토콜과 인터페이스 방법을 지정하는 추상화 계층 * 프로토콜 컴퓨터 내부 혹은 컴퓨터 간 데이터의 교환 방식을 정의하는 규칙 체계 집합 * Stateless 동일한 연결 상에서 발생한 두 개의 요청 사이에 연결고리가 없음을 말한다. 쿠키를 통해 동일한 상태를 공유하는 세션을 생성한할 수 있다. 프록시 브라우저(클..

💻 Web

[웹/브라우저] 브라우저 동작원리

네이버 D2의 브라우저는 어떻게 동작하는가? 와 Mdn web docs의 글을 학습한 후 정리한 글입니다. 브라우저의 주 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 렌더링하는 것이다. 보통 HTML 문서이며, PDF나 이미지 형태의 파일도 표현할 수 있다. 브라우저는 주소 표시줄, 이전/다음 페이지 등으로 이루어진 사용자 인터페이스 (프레임이라 생각해도 될 듯), 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어하는 브라우저 엔진, 요청한 콘텐츠를 뷰포트에 출력하는 렌더링 엔진, 백엔드에서 실행되는 통신, 이를 위한 백엔드 UI, 자바스크립트 해석기, 자원 저장소로 구성된다. 브라우저의 전반적인 동작 흐름은 탐색 > 응답 > 파싱 > 렌더로 이루어진다. 1. 탐색 1-1. DNS 조회 웹..

📚 CS/운영체제

[OS] 데드락 (Deadlock)

1. 데드락 (Deadlock) 프로세스나 쓰레드가 사용하고자 하는 컴퓨터 자원을 다른 프로세스가 갖고 종료 조건이 서로 맞물려 있는 상태로 무한정 대기하는 상황을 데드락(Deadlock)이라고 한다. 프로그램 설계 시 데드락이 발생하지 않도록 유의하여야 한다. 각자 설계한 프로그램이 단독적으로 실행될 때는 문제가 없을 수 있지만, 여러 개의 프로그램이 함께 실행되는 과정에서 발생할 수도 있기 때문에 문제점을 발견하거나 예방하기 쉽지 않다. 컴퓨터 자원의 분류 재사용 가능한 자원(Reusable Resources)과 소비성 자원 (Comsumable Resources)으로 나뉘어진다. CPU나 입출력 장치, 메모리 등 대부분의 하드웨어 자원은 사용 후 소멸되지 않으므로 재사용 가능한 자원에 속한다. 이러..

📚 CS/운영체제

[OS] 프로세스 충돌해결 1 (Concurrency Control)

1. 프로세스 충돌 컴퓨터 시스템 내부에서는 다양한 이벤트(쓰레드)들이 컴퓨터 자원을 사이에 두고 동시다발적으로 발생한다. 이들이 실행되며 충돌하는 경우가 빈번히 발생한다. Race condition 두 개 이상의 프로세스가 거의 동시에 접근하여 처리된 순서를 가릴 수 없는 상황을 말한다. Mutual exclusion 두 개 이상의 프로세스가 같은 메모리에 접근하는 상황에서 (공유 자원을 할당받아 사용할 떄) 한 번에 한 프로세스씩 액세스하도록 하는 성질. (상호배제) Race condition을 방지하기 위해선 Mutial Exclusion 성질이 만족되도록 프로그래밍되어야 한다. Critical section 공유 영역에서 값을 변경시키는 행위 Starvation 요청한 자원이 오랜 기간 동안 배정..

📚 CS/운영체제

[OS] 프로세스 컨텍스트와 생성절차 (Process Context & Creation)

1. 프로세스 컨텍스트 프로세스가 실행되는 데 필요한 컴퓨터 내의 정보 및 구성 요소 자원 집합. 유저 컨텍스트와 시스템 컨텍스트로 세분화된다. 유저 컨텍스트 프로그램 작성자(사람)에 의해 결정되는 컨텍스트 프로그램을 구성하는 코드, 데이터, User Stack의 집합을 지칭한다. 시스템 컨텍스트 운영체제에 의해 결정되는 컨텍스트 커널 코드 내의 함수 호출을 위한 커널 스택 (Kernel Stack) 프로세스 관련 정보를 저장하는 자료구조인 PCB로 구성되어 있다. fork() (하위 프로세스를 생성하는 System Call)을 통해 생성된 하위 프로세스의 식별 ID를 Pid에 할당한다. 이에 유효한 값이 할당된 경우 Delay를 주어 Pid의 스케쥴링 (CPU 할당)을 기다린다. 하위 프로세스는 부모 ..

📚 CS/운영체제

[OS] 프로세스 상태 모델과 PCB (Process State Model & Process Control Block)

1. 프로세스 상태 모델 Running or Not Running (Ready State + Blocked State) 프로세스가 실행중이지 않을 경우 (Not Running) 두 가지 상태로 분류할 수 있다. 준비 상태 : 프로세서가 주어진 경우 실행 가능한 상태 (Multi Processing에서 Time Out등으로 후순위로 밀려나간 경우 등) 블럭 상태 : 프로세서가 주어져도 실행되지 못하는 상태. I/O 등의 이벤트를 기다리는 상태들. 이벤트가 완료되면 Running State로 돌아가는 것이 아닌 Ready State로 넘어가 Ready queue에서 순서를 기다린다. 결론적으로 Ready queue, Blocked queue의 두 가지 큐가 존재한다. 블럭 상태로 편입되는 경우가 다양한데, ..

📚 CS/운영체제

[OS] 운영체제 구조와 프로세스 (OS Architecture & Process)

1. 운영체제의 소프트웨어 구조 1-1. 모노리씩 커널 구조 (Monolithic Kernel) '단일체'라는 의미로, 커널 SW가 한 덩어리로 모여 있는 것을 의미한다. 내부에서 내부 함수 콜을 호출하고 결과를 받기 때문에, 실행 속도가 빠르다. Unix, Linux 1-2. 마이크로 커널 구조 (Micro Kernel) 운영체제의 기능들이 외부에서 구현되는 아키텍쳐를 의미한다. 프로세스의 형태를 띄며 운영체제 위에서 응용프로그램이 실행되는 것처럼 커널이 실행된다. 실행속도는 상대적으로 느리지만, 유지보수가 편리하다. 파일 관리, 통신 프로토콜, 입출력 디바이스 제어와 같은 기능들이 커널 외부에서 실행된다. 그러나 하드웨어 종속적인 코드들과 메모리 영역을 보호하는 프로세스, 기본적인 스케줄링 기능들은 ..

📚 CS/운영체제

[OS] 컴퓨터 시스템과 처리방식

컴퓨터 시스템 (폰노이만 컴퓨터의 기본적인 구조) 프로세서(CPU)와 메모리(OS, Program) 그리고 Bus 형식으로 이어져 있는 I/O Controller로 구성된다. OS는 비휘발성 보조기억장치에 저장되어 있다. 프로그램이 실행되기 위해선 주기억장치로 복사 / 호출되어야 한다. 커널(Kernel) : 운영체제의 기능 중 항상 주기억장치에 상주하는 요소들을 의미한다. 본 강의에서는 넓은 범위의 ‘운영체제’로 이해하면 된다. 컴퓨터의 역사와 처리 방식 Serial Processing 사람에 의해 Operating되는 초기 운용 방식 Simple Batch Systems (단순 일괄 처리 방식) Monitor Software의 등장 마그네틱 카드로 이루어져 있는 일련의 프로그램의 묶음을 차례차례 메모..

📚 CS/네트워크

[면접을 위한 CS 전공지식 노트] 계층간 데이터 송수신과 네트워크 처리 기기

유선 LAN (IEEE802.3 프로토콜) 전이중화 통신 (Full duplex) : 양쪽 장치가 동시에 송수신할 수 있는 방식. 송/수신로 서버가 나뉘어져 있으며, 현대에 사용하고 있는 고속 이더넷 방식이다. CSMA/CD : 데이터 전송 ‘이후’ 충돌이 발생한다면 일정 시간 이후 재전송 → 유선 LAN에 사용했던 반이중화 통신 방식 무선 LAN (IEEE802.11) 반이중화 통신 (Half duflex) : 양쪽 장치가 서로 통신할 수는 있지만, 동시에 이루어질 수는 없다. 충돌 가능성이 있기 때문에 방지할 시스템이 필요하다. CSMA/CA : 캐리어 감지 (회선이 비어 있는지 판단) 등 사전에 충돌을 방지하는 방식이다. 랜덤 값을 기반으로 정해진 시간만큼 기다린 후 데이터를 송신하는 IFS도 존재..

📚 CS/네트워크

[면접을 위한 CS 전공지식 노트] 네트워크 (TCP/IP 모델과 네트워크 토폴로지)

2.1 네트워크 2.1.1 처리량과 지연시간 네트워크란 노드와 링크를 통해 구성된다. 노드란 서버, 라우터, 스위치 등의 네트워크 장치를 의미하고 링크는 유무선 연결을 의미한다. 처리량 : 링크를 통해 전달되는 단위 시간당 데이터양으로, bps단위를 사용한다. 초당 전송 또는 수신되는 비트 수를 의미한다. 지연시간 : 요청이 처리되는 데에 걸리는 시간을 의미하며, 데이터가 두 장치 사이를 왕복하는 총 시간이다. 2.1.2 네트워크 토폴로지와 병목 현상 네트워크 설계 간 노드와 링크의 배치방법을 네트워크 토폴로지라 한다. 트리 토폴로지 : 계층형 토폴로지라고도 하며, 노드의 추가 및 삭제가 용이하고 트래픽이 집중될 때 하위 노드에도 영향을 미칠 수 있다. 버스 토폴로지 : 설치 비용이 적고 신뢰성이 우수한..

황재웅 Jaeppetto
'CS' 태그의 글 목록