[ STUDY ]/CS 20

[ 컴퓨터 네트워크 ] HTTP, HTTPS

HTTPHTTP는 인터넷상에서 데이터를 전송하기 위한 프로토콜로, TCP/IP 4계층에서 응용 계층에 속한다. HTTP의 특징 1️⃣ 비연결성(connectionless)비연결성이란 클라이언트에서 요청을 보낸 후 서버로부터 응답을 받으면 연결을 끊는 것을 의미한다.불특정 다수를 대상으로 하는 서비스에 유리하다.서버에서 응답은 받고 연결을 유지하려면 자원이 필요한데 비연결성으로 자원을 아낄 수 있다.하지만 연결을 유지하지 않기 때문에 서버가 클라이언트를 기억할 수 없다.동일한 클라이언트에서 연속적으로 요청이 오면 연결, 연결 해제를 반복해 자원을 낭비하게 된다. ☝🏻 위에서 말한 단점을 보완하기 위해 HTTP Keep Alive를 사용한다.HTTP Keep AliveHTTP 연결 시 일정 시간 동안 요..

[ STUDY ]/CS 2024.11.13

[ 컴퓨터 네트워크 ] TCP와 UDP

TCPTCP는 전송 계층에 해당하는 네트워크 프로토콜로, 연결형 서비스를 지원하고 데이터의 신뢰성을 보장한다.송신부와 수신부의 연결을 확인하는 연결형 서비스패킷 교환 방식 : 패킷이 전달되는 회선이 정해져 있는 가상 회선 방식패킷 전송 순서가 보장된다.패킷의 수신 여부를 확인한다.송신부와 수신부가 1 : 1 통신을 한다.데이터 손실이 없음을 보장하므로 신뢰성이 높다.느리다☝🏻 패킷 교환 방식 2가지· 가상 회선 방식데이터를 주고받기 전에 패킷을 전송할 경로인 가상 회선을 설정해서 모든 패킷을 같은 경로로 전송 · 데이터그램 방식패킷마다 최적의 경로로 전송한다. 때문에 송신부에서 보낸 패킷 순서와 수신부에서 받는 패킷의 순서가 다를 수 있다. TCP 핸드셰이킹TCP에서는 연결형 서비스를 지원하기에 송신부..

[ STUDY ]/CS 2024.11.13

[ 컴퓨터 네트워크 ] 네트워크 계층

네트워크 계층네트워크에는 다양한 기기 간 통신을 위해 약속된 구조가 있다.  OSI 7계층OSI 7계층이란 국제 표준화 기구에서 네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델이다. 📤 송신부 각 계층은 독립적이며 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해 데이터를 가공한다. 이때 제어 정보를 담은 헤더나 트레일러가 붙는데, 이 과정을 데이터 캡슐화라고한다.응용 계층 -> 물리 계층 📥 수신부  물리 계층부터 응용계층까지 거치며 받은 데이터에서 헤더와 트레일러를 분석해 제거하는 역캡슐화를 진행한다. 이 과정에서 각 계층은 필요한 제어 정보를 얻는다.  프로토콜  통신 규약. 즉, 데이터를 송수신하기 위해 정한 규칙을 의미한다.7계층(응용 계층)HTTP, FTP 등의 프로토..

[ STUDY ]/CS 2024.11.12

[ 운영체제 ] 캐시 메모리

1.6.1 캐시 메모리와 지역성캐시 메모리CPU와 메인 메모리(RAM) 간에 데이터 접근 시 속도 차이를 줄이기 위해 사용한다.CPU에서 자주 사용하는 데이터를 캐시 메모리에 따로 저장해두면 CPU가 해당 데이터에 더욱 빠르게 접근할 수 있다. 💡 캐시 메모리에는 어떤 데이터를 저장할까❓❓캐시 메모리에 저장할 데이터는 지역성을 바탕으로 결정한다. 📖 지역성CPU가 자주 참조하는 데이터가 고르게 분포되지 않고 특정 부분에 몰려 있는 것시간 지역성 : 최근 참조한 내용을 다시 참조할 가능성이 높다.공간 지역성 : 실제 참조한 주소 근처의 내용을 참조할 가능성이 높다 1.6.2 캐시 메모리의 매핑 방식캐시 메모리와 메인 메모리를 매핑하는 방식직접 매핑(direct mapping)메인 메모리를 일정한 크기로..

[ STUDY ]/CS 2024.11.11

[ 운영체제 ] 가상 메모리 - 요구 페이징, 스레싱

1.5 가상 메모리사용자가 프로그램을 실행하면 OS는 디스크에 저장된 데이터를 메모리로 로드한다.하지만 메모리 공간은 한정되어 있고, 사용자는 동시에 여러 프로그램을 실행하고 싶어한다.가상메모리는 이런 메모리 한계를 극복하는 방법이다.  1.5.1 가상 메모리란 ⭐️⭐️⭐️가상 메모리란 프로세스의 일부만 메모리에 로드하고, 나머지는 디스크에 둔 상태로 프로세스를 실행하는 방식이다.-> 프로세스 전체가 메모리에 올라오지 않아도 프로세스를 실행하는 데 문제가 없다는 점에서 착안됐다. 💡 가상 메모리의 장점프로그램이 메모리 크기에 대한 제약을 덜 받는다프로그램 크기가 실제 RAM보다 커도 실행이 가능하다CPU이용률과 처리율을 높인다.(동시에 많은 프로그램을 실행하므로)필요한 영역만 메모리에 로드해 스와핑 횟..

[ STUDY ]/CS 2024.11.11

[ 운영체제 ] 메모리 관리 전략 - 페이징, 세그먼테이션

1.4 메모리 관리 전략다수의 프로세스를 실행하려면 한정된 메모리 공간에 많은 프로세스를 로드할 수 있어야 한다.메모리 공간을 더 효율적으로 활용하기 위한 여러 방안이 있다.  1.4.1 논리 메모리와 물리 메모리CPU가 프로세스를 처리할 때 보는 주소 값과 실제 메모리의 주소 값은 다르다.프로세스가 보는 메모리 영역을 논리 메모리 영역, 가상 메모리 영역이라고 한다.실제로 사용되는 메모리 영역(RAM)을 물리 메모리 영역이라고 한다.CPU가 프로세스를 실행하며 보는 주소 값을 논리 주소, 가상 주소라고 한다.실제 메모리에서 사용하는 주소는 물리 주소라고 한다.💡 메모리 관리 장치(MMU)CPU가 프로세스를 실행할 때 사용하는 주소 값과 실제 주소 값이 다르므로 논리 주소를 물리 주소로 변환해주는 하드..

[ STUDY ]/CS 2024.11.11

[ 운영체제 ] 스케줄링

1.3 스케줄링멀티 프로세스 환경에서는 여러 프로세스가 모두 실행되어야 하지만, CPU자원은 한정적이다.그래서 스케줄링을 통해 모든 프로세스를 공평하게 실행해 한정된 자원을 효율적으로 활용하는 것이 OS의 주요 목적이다.  1.3.1 스케줄링의 목적스케줄링의 주요 목적은 멀티 프로세스 환경에서 모든 프로세스를 공평하게 실행하는 것 💡  스케줄링의 목적 5가지공평성특정 프로세스가 실행되지 않는 경우가 없도록 모든 프로세스가 공평하게 실행되어야 한다.효율성자원을 효율적으로 사용해 자원이 사용되지 않는 시간이 없도록 스케줄링해야 한다.안정성높은 우선순위의 프로세스를 먼저 처리하도록 스케줄링한다.반응 시간 보장일정 시간 내에 응답할 수 있도록 스케줄링한다. 오랜 시간 응답이 없으면 사용자는 시스템이 멈춘 것으..

[ STUDY ]/CS 2024.11.11

[ 운영체제 ] 프로세스 2️⃣ - 프로세스 동기화, 교착 상태, IPC, 좀비고아···

1.2.7 프로세스 동기화경쟁 상태여러 프로세스 또는 스레드에서 하나의 공유자원에 동시에 접근하여 경쟁하는 상태 💡  너무 많은 우유 문제 - 프로세스 동기화가 필요하다!!엄마가 냉장고에 우유 없는 걸 확인엄마 우유 사러감엄마 우유 사고 돌아오는 길에 아빠도 냉장고에 우유 없는 거 확인아빠 우유 사러감우유 2개 됨 -> 의도하지않은 결과  임계 영역공유 자원에 접근할 수 있고 접근 순서에 따라 결과가 달라지는 코드 영역* 우유문제에서 냉장고에 우유가 있는지 없는지 판단하고 우유를 추가하는 부분이 이에 해당한다.  ☝🏻 임계 영역에서 경쟁상태를 방지하기 위해 프로세스 동기화가 필요하다. 💡  임계 영역에 여러 접근이 동시에 발생하는 것을 방지하는 3가지 방법상호 배제 기법(mutual exclusi..

[ STUDY ]/CS 2024.11.11

[ 운영체제 ] 프로세스 1️⃣ - 프로세스, 스레드, 콘텍스트 스위칭, PCB ···

1.2.1 프로세스와 스레드프로세스  컴퓨터에서 실행 중인 하나의 프로그램을 의미프로그램은 특정 작업을 수행하기 위한 명령어의 집합OS는 프로그램을 실행하면서 디스크에 저장된 데이터를 메모리로 로드한다.프로세스는 독립된 메모리 영역을 할당받고, 다른 프로세스의 메모리 영역에는 접근 불가능하다. 💡  프로세스의 메모리 영역 구조스택(stack)지역변수, 함수의 매개 변수, 반환되는 주소 값 등이 저장되는 영역영역 크기는 컴파일 때 결정된다.LIFO(후입선출) : 높은 주소 값에서 낮은 주소 값으로 메모리가 할당힙(heap)사용자에 의해 동적 메모리 할당이 일어나는 영역영역 크기는 런타임 때 결정된다.FIFO(선입선출) : 낮은 주소 값에서 높은 주소값으로 메모리가 할당데이터(data)전역 변수, 정적 변..

[ STUDY ]/CS 2024.11.11

[ 운영체제 ] 운영체제

1.1.1 운영체제란?운영체제(OS)란 하드웨어 위에 설치되어 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층이다.컴퓨터 시스템의 자원을 관리하고, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공사용자와 컴퓨터 간 인터페이스를 제공 -> 사용자가 컴퓨터를 편리하게 사용윈도우, 맥OS, 리눅스, 유닉스1.1.2 운영체제의 목적  1. 처리 능력      자원 관리를 통해 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킴   2. 반환 시간      요청한 작업을 완료할 때까지 소요되는 시간을 단축시킴   3. 사용 가능도      시스템 자원을 얼마나 빨리 제공할 수 있는가 -> 사용자가 컴퓨터를 사용해야할 때 자원을 즉시 사용할 수 있어야함.   4. 신뢰도      시스템이 주어진 문..

[ STUDY ]/CS 2024.11.10