본문 바로가기

CS16

[네트워크] Transport Layer, Mux & Demux 개요TCP Keywordsreliable data transferflow controlcongestion controlTransport Layer가 하는 일서로 다른 host의 프로세스 간 Logical communication 제공프로토콜은 End System 즉, host에서 돌아간다.Network 계층의 라우터들을 거쳐서 데이터들이 전달되지만, Transport 계층은 이 거쳐가는 과정은 보이지 않고 두 엔드 시스템(프로세스) 사이의 Logical Communication에만 집중한다.Sender: App Layer의 메시지를 segment 단위로 메시지를 잘라서, Transport Layer의 헤더를 붙이고 Network Layer로 전송Receiver: 받은 segme.. 2024. 4. 24.
[네트워크] DNS, DNS 쿼리, DNS recode 종류 개요프로세스가 서로 통신할 때 알아야 하는 두 가지 정보 → IP, PortIP: 프로세스가 돌고 있는 머신의 Network Interface Card에 부여된 Identity → IPv4, host name(domain name)Port: 실행 중인 프로세스에 접근할 수 있는DNSIP 주소를 hostname으로 매핑(라우팅)해주는 역할→ Network Layer에서 해야하는 일을 App-Layer에서 함⇒ Network Layer는 빠르게 전송만 하면 돼서, 복잡한 연산을 App-Layer에서 처리하는 것distributed database → not centralize가용성, 중요한 서비스는 분산시킨다.application layer protocol   DNS가 하는 일host name-IP addr.. 2024. 4. 24.
[네트워크] HTTP 개요HTTP는 Hyper Text를 전달하는 프로토콜이다.request, response 두 가지 타입이 있다. Hyper Text?파일들이 링크되어 있는 텍스트HTTP 특징ConnectionlessHTTP는 클라이언트의 요청에 대한 응답을 하면, 바로 연결을 끊는다. 한 클라이언트에 대한 접속 유지 시간을 줄임으로써 더 많은 요청-응답을 할 수 있다.(단점) 같은 클라이언트 요청이 오더라도 이에 대해 전혀 알 수 없다. → 이걸 해결하기 위한게 쿠키 Stateless바로 직전의 클라이언트에서 또 요청이 왔을지라도, 해당 클라이언트의 상태를 저장하지 않으므로 클라이언트 측에서 추가적인 정보를 제공해야 한다. HTTP는 Transport 계층에서 TCP를 사용한다.Reque.. 2024. 4. 24.
[네트워크] TCP/IP 5계층 | Application Layer TCP/IP 5계층ApplicationFTP, HTTP, SMTP 등의 프로토콜TransportTCP, UCPNetworkIP, 스위치Link이더넷Physical 여기서 7계층되면…Application - Transport 계층 사이에 두 계층 추가Presentation 인코딩, 디코딩, 암호화/복호화Session: 애플리케이션 간 연결 지원(SSL, TLS 등)계층 간 이동 ⇒ Encapsulation각각의 계층을 이동하면서 프로토콜 헤더를 붙이게 된다.캡슐화: 송신 측에서 응용계층부터 각 계층을 들리면서 헤더 추가, 물리 계층까지 가면 최종적으로 전기 신호로 변환되어 수신 측에 도착  Applciation Architectur.. 2024. 4. 24.
[OS] 멀티 프로세서, 멀티 태스킹, 멀티 프로세스, 멀티 스레드! 개요 멀티 프로세스(여러 프로세스가 병렬적으로 일하는 것)공부를 하면서 여러 자료를 참고하는데, 이 4개의 용어에 대해 정의하는 바가 다들 달랐다. 여러 자료를 참고하면서 혼선이 왔고, 많이 찾아보고 구글링하며 내린 각각의 차이에 대해 명확하게 정리하는 포스팅이다. 멀티 프로세서(Multi-Processor, Multi-Processing) 단일 시스템 내에서 다중 cpu로 여러 작업을 처리하는 것이다. 하나의 cpu는 하나의 작업만 처리할 수 있다. 그냥 스펙을 쭉쭉 눌려서 여러 cpu를 두고 돈도 빵빵하게 쓰며 성능을 높이는 것이 멀티 프로세서-멀티 프로세싱이다. 장점 독립된 구조로 안정성이 높고, 하나의 프로세스에 문제가 생기더라도 다른 프로세스들에 영향을 주지 않는다. 단점 비용, 전력소모 등등 .. 2024. 3. 10.
[OS] Synchronous, Asynchronous, Blocking, Non-Blocking 개요 Synchronous & Asynchronous | Blocking & Non-Blocking의 개념과 실제로 어떻게 활용하는지, 네 개념의 상관관계는 어떻게되는지 정리하는 포스팅이다. Synchronous Sync 프로세스들은 서로 실행 시점에 따라 순서를 가지고, 순차적으로 실행이 된다. 아래와 같은 Java 예제 코드와 Synchronous한 동작 과정은 다음과 같다. public class Person { private String name; public Person(String name) { this.name = name; } public void introduce() { System.out.println("Hello, my name is " + name + "."); } } public .. 2024. 1. 31.
[OS] user mode & kernel mode 개요 운영체제는 응용 프로그램과 하드웨어 간의 상호작용을 관리하고, 리소스를 효율적으로 활용하기 위한 다양한 작업을 한다. 이 작업에 대한 방식을 두 가지(유저 모드와 커널 모드)로 나누어, 컴퓨터 자원을 안정적으로 보호한다. 이 두 가지 작업 모드에 대해서 알아보자. Kernel이란 커널은 OS의 핵심이되는 프로그램으로, 시스템의 모든 것(하드웨어의 동작, 메모리, CPU 등)을 제어한다. 프로세스 간 통신과 System Call을 이용하여, 하드웨어 리소스에 접근하여 수행되는 응용 프로그램과 데이터 처리 사이의 중간다리 역할을 한다. 커널에는 모든 활성 프로세스를 추적하는 프로세스 테이블이 있어, 이들을 관리한다. 커널은 OS가 로드되면 메모리에 먼저 로드되고, OS가 종료될 때까지 메모리에 남아있다.. 2024. 1. 30.
[CS] 비트마스킹 | 비트 연산자 | 비트마스킹과 집합 비트마스킹(Bitmasking a.k.a. lightweight) 컴퓨터는 숫자나 데이터를 이진수로 표현한다. 이진 표현을 수정하고 활용하는 과정이 비트마스킹이다. 비트마스킹은 비트 연산을 사용하여 특정 비트의 값을 설정하거나 검사하는 방법을 제공한다. 비트마스킹을 통해 메모리를 절약하고 연산 속도를 향상시킬 수 있다. 비트 연산자 AND(a&b) 둘다 1이면 1, 아니면 0 OR(a|b) 둘다 0이면 0, 아니면 1 XOR(a^b) 같으면 0, 다르면 1 NOT(~a) 0 → 1, 1 →0 LS(a > 2) a를 2비트 만큼 오른쪽 시프트 비트마스크와 집합 비트마스크를 활용하여 집합 연산을 쉽고 빠르게 사용할 수 있다. 이를 통해 문제 해결을 쉽고 빠르게 할 수 있다! 원소의 개수가 N인 집합이 있다고.. 2023. 7. 19.
[OS] CPU Scheduling | preemptive & non-preemptive | 스케줄링 알고리즘 | 스케줄러 알고리즘 평가 스케줄링 개념 앞단원까지 cpu는 hw 자원의 효율적인 사용을 위해 context-switching을 통해 마치 concurrency(동시병렬)한 것처럼 hw 자원들을 사용한다고 배웠다. 이러한 context-switching을 관장하는 것이 CPU scheduling이다. 말 그대로 cpu의 스케쥴을 관리한다. [스케쥴링 전제] 일단 스케쥴러의 판단 하에 있으려면, 프로세스들은 모두 메모리에 load가 되어있는 상태이어야 한다. multi programming 환경이어야 한다. batch programming은 schedule을 나눈다는 가정 자체가 성립 안되니 당연하다. [cpu schedular의 역할] 스케줄러가 ready queue에서 작업을 선택해서 CPU burst하고 나머지는 I/O하면 효.. 2023. 5. 11.
[OS] 운영체제가 하는 일4가지 https://cobinding.tistory.com/entry/OS-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EB%9E%80-%EB%AA%A9%EC%A0%81-%EC%99%9C%EB%B0%B0%EC%9B%80 [OS] 운영체제란 | 목적 | 왜배움? [운영체제란] 컴퓨터 하드웨어 바로 위에 설치되어, sw와 hw를 연결하는 sw 계층 좁은 의미 : 커널(운영체제의 핵심, 부팅 이후 항상 메모리에 상주) 넓은 의미 : 각종 시스템들 [운영체제의 목적] 1. cobinding.tistory.com OS는 컴퓨터 자원을 효율적으로 관리하고 user와 hw 간의 효용성을 위해 존재한다고 배웠었다. 그럼 os는 어떤 방식으로 일을 하며 이를 제공해주는지 알아보자. 크게 4가지가 있다. .. 2023. 4. 15.
[OS] 프로세스 | 프로세스의 상태 | PCB | context switching 프로세스 프로세스는 실행 중인 프로그램이다. Process context(프로세스의 문맥) 특정 시점에서의 cpu 수행 상태를 나타내는 하드웨어 문맥 PC가 어디를 가리키고 있는가? 각종 레지스터 프로세스의 주소 공간(code, data, stack) 프로세스 A의 주소공간에 어떤 내용이 담겨있는가? (stack에 쌓인 함수, bss에 있는 변수의 값) 프로세스 관련 커널 자료구조 PCB(Process Control Block): 프로세스 하나가 실행될 때 마다 이를 관리하기 위해 생성. cpu를 얼마나 줘야할지 등 Kernel Stack Process State(프로세스의 상태) 프로세스는 상태가 변경되며 수행된다. New 프로세스가 생성 중인 상태 Running cpu를 잡고 instruction을 .. 2023. 4. 7.
[OS] 컴퓨터 시스템 구조 | 저장장치 계층 | 프로그램 실행 과정 | 커널 | 동기식/비동기식 IO | DMA 컴퓨터 시스템 구조 cpu에는 instruction set에 따라서 N bytes로 구성된 기계어 조합이 구성되어있다. 그래서 매 순간 CPU는 메모리에 어느 주소에 담긴 명령어들을 불러와서 일을 수행하게됨. cpu에는 메모리 주소를 가르키는 pc 레지스터에서 가리키는 메모리 위치에 가서 명령어를 불러온다. 불러오자마자 pc + N byte cpu는 다음 순서의 명령어를 실행하기 전에 interrupt를 체크한다. ⭐️만약 인터럽트가 들어왔다면 하던 작업을 멈추고 CPU 제어권을 OS에게 주게 됨. ⭐️OS는 인터럽트 상황에 맞게 처리해야 할 커널 함수를 수행한다. 항상 순차적 x. 함수 호출이나 제어 구조가 오면 JMP하게됨. mode bit = 0 or 1 0 : 모든 기계어 집합 실행 가능/운영체제.. 2023. 4. 6.