본문 바로가기

CS 전공수업

(12)
[OS] 운영체제 꼬리물기 질문 대비 * 참고한 사이트: https://github.com/ksundong/backend-interview-question, https://suhyunsim.github.io/2023-03-14/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A9%B4%EC%A0%91%EC%A7%88%EB%AC%B8 Q 프로그램의 종류에 대해 설명해주세요 애플리케이션, 미들웨어, 운영체제 이렇게 구분할 수 있을 것 같습니다. 애플리케이션은 사용자가 직접 사용하는 프로그램을 의미합니다. 미들웨어는 여러 개의 애플리케이션이 공통으로 사용하는 것들을 모아 앱의 실행을 도와줍니다. 운영체제는 큰 틀에서 사용자가 하드웨어를 사용하는 것을 도와주는 소프트웨어라고 할 수 있습니다. Q OS의 역할은 뭐죠? OS는..
[OS] 프로세스 & 쓰레드 프로세스란, 쓰레드란?* 프로세스 process : 컴퓨터에서 실행되고 있는 프로그램을 말함. CPU 스케줄링의 대상이 되는 task.* 쓰레드 thread: 프로세스 내 작업의 흐름. 멀티 프로세스 & 멀티 쓰레드말그대로 각각 여러 개의 프로세스와 쓰레드를 쓴다는 말. 둘 사이 특징이 다르므로, 이를 기억하자.그런데 CPU (정확히는 코어)의 수는 어차피 정해져 있는데, 멀티 프로세스든 쓰레드든 그게 뭐가 중요하지? 라고 생각할 수 있는데, 여러 개의 프로세스 혹은 쓰레드는 하나의 CPU를 정말 빠른 속도로 사용하고, 비켜줬다가, 다시 사용하는 것을 무한 반복한다. context switching. 그렇기 때문에 여러 개의 프로그램을, 마치 동시에 진행하는 것처럼 사용자에게 보여줄 수 있는 것. * 멀..
[OS] 메모리, 캐시, 운영체제의 메모리 관리 기본적으로 컴퓨터 구조를 다룰 때, CPU의 ALU가 연산을 시전하는 부분이라면 그 일련의 과정에 있어서 데이터를 저장하고 빼내는 등의, 일종의 창고 역할을 하는 부분이 필요한데, 그걸 넓은 의미에서의 메모리라고 한다.  메모리의 종류 종류로는 레지스터, 캐시(L1, L2, L3), RAM(주기억장치), 디스크(보조기억장치) 등이 있다. 저 순서대로 오른쪽으로 갈수록 더 많은 양의 데이터를 저장할 수 있지만, CPU로부터의 접근성이 떨어지고, 그렇기 때문에 가격도 싸진다.참고로 레지스터와 캐시의 일부(1은 항상, 2는 때때로)는 CPU 내부에 위치해 있다. 접근성이 최고인 셈. 각각을 알아보면, 1 레지스터: CPU가 즉시 사용할 수 있는 데이터를 저장하는 공간.2 캐시 메모리: CPU가 매우 빠르기 때..
[OS] 운영체제 기본 OS란?사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스.컴퓨터 하드웨어가 있고, 하드웨어를 사람이 사용하고자 할때 (어플리케이션을 통해 상호작용) 하드웨어와 사람 사이에서, 사람을 도와 하드웨어를 활용할 수 있게 도와주는 장치라고 생각하면 편하다.참고로 운영체제 중에 소프트웨어를 추가로 설치할 수 없는 것을 firmware라고 명명함. OS의 역할?OS의 역할은 4가지로 크게 분류:CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리함.메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마만큼 할당할지 관리함.디스크 파일 관리: 디스크 파일을 어떤 방법으로 보관할지 관리함.I/O 디바이스 관리: I/O 디바이스들 (마우스, 키보드, ..
[네트워크] IP - Internet Protocol - 네트워크 계층은 IP 패킷을 목적지까지 전달하는 역할을 함.- IP 패킷이 출발지부터 목적지까지 가는 데에 있어서 지나는 모든 호스트와 라우터에 IP 프로토콜이 실행됨. - 출발지 호스트는, 전송계층에서 넘어온 데이터 세그먼트를 IP 패킷으로 캡슐화함 - encapsulate- 목적지 호스트는 수신한 IP 패킷의 헤더를 제거하고, 전송 계층으로 데이터 전달함 - decapsulate   * 핵심적인, OSI 모델에서의 데이터 관점에서의 용어 및 특징 복습 (송신단 기준, 수신단은 모든 것을 반대로 생각)계층 이름데이터 단위 명칭크기비고 응용 계층데이터무제한. 큼. 이메일 메시지, 웹 페이지 등.사용자가 애플리케이션을 통해 생성한 데이터.전송 계층데이터 세그먼트 / 데이터그램큼지막했던 데이터를 작은 조..
[네트워크] QUIC 프로토콜 QUIC을 왜 쓰냐?  지난 40여년간 통신 쪽을 꽉 잡고 있었던 TCP도, 한계는 있었다.예를 들어, 연결 설정 지연, HOL 블로킹, 복잡한 프로토콜 스택 등이다.QUIC은 한마디로, TCP의 한계점들을 해결하기 위해 드드등장했다. 위의 한계점들을 아래와 같이 극복한다. 1 연결 설정 지연:TCP는 연결 설정을 위해 3-way handshake를 사용했고, TLS를 쓰면 추가적인 3-way handshake를 해야하기에 2번의 3-way HS가 필요했다. 이에 비해 QUIC은, 연결 설정 시 0 또는 1 RTT 핸드셰이크를 사용함. 심지어 한 번 연결했더라면, 0RTT로 가능함. 그리고, QUIC은 TLS를 자체 프로토콜 내에 통합했기 때문에, 별도의 TLS 핸드셰이크가 필요하지 않기 때문에 더욱 편..
[네트워크] 네트워크 보안 1 네트워크 보안 개요 Network Security Overview네트워크 보안에서 중요한 여러가지 요소들은,Confidentiality 기밀성: 오직 의도된 수신자만 메시지를 볼 수 있도록 함. Encryption - Decryption.Authentication 인증: 수신자는 메시지의 발신자를 확인할 수 있음.Availability 가용성: 서비스 및 데이터가 사용자에게 제공될 수 있도록 함. DDoS 공격에 취약함.Data Integrity 데이터 무결성: 메시지의 변경 사항(전송 中 또는 이후)을 감지할 수 있음.뭔가 그럴듯한 이름을 붙였지만, 사실 당연한 것들이다. 이메일로 예를 들자면, 이메일 받기로 한 사람이 받아야 하고 - 기밀성,받는 사람은 누가 보냈는지 알 수 있어야 하고 - 인증..
[네트워크] TCP Congestion Control 버퍼 vs 슬라이딩 윈도우:앞서 다뤘던 슬라이딩 윈도우는 TCP에서 데이터 흐름을 제어하는 매커니즘인데, 송신자가 한번에 전송할 수 있는 데이터의 양을 제한하고, 수신자가 수신할 수 있는 데이터의 양을 제어함. 송신 윈도우 & 수신 윈도우의 두 개 윈도우로 구성됨.버퍼는 라우터, 스위치, 컴퓨터 등의 네트워크 장치에서 임시로 데이터를 저장하는 메모리 공간. 곧 다룰 라우터 버퍼는, 라우터에 붙어서, 데이터 패킷을 일시저장하고, 전송 지연을 관리하는 버퍼임. Congestion 혼잡이란, 여러 소스가 동시에 너무 많은 데이터를 네트워크게 빠르게 전송할 때 발생.예를 들면 아래와 같은 시나리오들을 포함한다.  * 시나리오 1: 2 송신, 2 수신, 무한 버퍼 라우터, 재전송 없음 위에서 보이듯, 무한 버퍼이..