본문 바로가기

CS 공부

(5)
네트워크 (2) - HTTP/HTTPS 1. HTTP인터넷상에서 데이터를 전송하기 위한 프로토콜 - 비연결성응답을 받으면 연결을 끊는다.서버가 클라이언트를 기억하지 못하는 단점을 해결하고자 HTTP Keep Alive 를 사용하여 일정 시간 연결 유지 - 무상태클라이언트가 이전에 요청한 사항을 서버에 저장하지 않는다.클라이언트가 데이터를 모두 가지고 있거나 (쿠키), 서버가 요청 사항을 모두 저장해야 한다. (세션)대신 서버 확장성이 높다.* 쿠키 : 웹 브라우저에 저장하는 데이터 파일. 로그인 정보와 장바구니* 세션 : 서버에 데이터 저장. 보안성은 높지만 서버 과부하 위험  2. HTTP 메시지서버와 통신하기 위해 주고 받는다. - 구조요청 메시지 : 요청 라인, 헤더, 바디응답 메시지 : 상태 라인, 헤더, 바디 - 상태 코드1xx : ..
네트워크 (1) - 계층과 TCP, UDP 1. OSI 7계층네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델각 계층은 독립적이고, 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해 데이터를 가공한다.헤더나 트레일러가 붙고, 이를 데이터 캡슐화라고 한다. 수신부의 같은 계층에서 호환성을 높인다. - 7계층 응용계층 : HTTP, FTP 등의 프로토콜을 프로그램의 UI를 통해 제공한다.- 6계층 표현계층 : 데이터를 표준화된 형식으로 변경한다.- 5계층 세션계층 : 프로그램 간 통신 제어와 동기화를 한다. 세션 유지 및 해제 등- 4계층 전송계층 : 신뢰성 있는 데이터를 전달하기 위한 계층. TCP, UDP 같은 전송 방식과 포트 결정- 3계층 네트워크계층 : 데이터를 전달하기 위한 최적의 경로를 선택하는 라우팅 수행- 2계층 ..
운영체제 요약 정리 1. 메모리 계층 구조- 사용 목적에 따라 메모리 계층이 나눠진다.- 레지스터, 캐시 메모리, RAM, 하드 디스크로 구성된다.- CPU 접근 속도는 레지스터 > 캐시 메모리 > RAM(휘발성) > 하드 디스크 2. 시스템콜- 운영체제에 커널모드와 사용자모드가 있다.- 사용자모드에서 시스템 자원에 직접 접근할 수 없고 시스템콜을 통해 접근해야 한다. 3. 프로세스- 실행 중인 하나의 프로그램이고, 하나 이상의 스레드를 가진다.- PCB 에는 프로세스의 정보가 저장되어 있다.- 프로세스마다 독립된 메모리 공간(코드, 데이터, 스택, 힙)을 가진다.   스택 : 지역변수, 함수의 매개변수, 반환 주소값 등 저장   힙 : 동적 메모리 저장   데이터 : 전역 변수, 정적 변수, 배열, 구조체 저장   코드 ..
운영체제 (2) - 스케줄링과 메모리 1. 스케줄링멀티 프로세스 환경에서는 여러 프로세스가 모두 실행되어야 하지만 CPU 자원은 한정적이다.스케줄링을 통해 모든 프로세스를 공평하게 실행해서 한정된 자원을 효율적으로 사용하는 것이 목적이다. - 스케줄링의 단계 장기 스케줄링 : 준비 큐에 어떤 프로세스를 넣을지 결정해서 메모리에 올라가는 프로세스의 수를 조절. 잡 스케줄링 또는 승인 스케줄링중기 스케줄링 : 메모리에 로드된 프로세스의 수를 동적으로 조절. 많이 로드되면 스왑아웃과 스왑인을 통해 조절단기 스케줄링 : 어떤 프로세스를 실행할지 결정. CPU 스케줄링  2. 스케줄링 알고리즘단기 스케줄러가 어떤 프로세스를 실행할지 결정하는 데 사용한다. - 비선점형 스케줄링 : 실행 중인 프로세스가 종료될 때까지 다른 프로세스를 실행할 수 없다. ..
운영체제 (1) - OS와 프로세스 1. 운영체제운영체제(Operating System)란 하드웨어 위에 설치되어 하드웨어 계층과 소프트웨어 계층을 연결하는 계층이다.컴퓨터 시스템의 자원을 관리하고, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 수행한다. 즉, 한정된 컴퓨터 자원을 관리하는 시스템이다.OS는 한정된 자원 안에서 정확하고 빠르게 주어진 문제를 해결하는 것이 목적이다.다음은 OS의 4가지 목적을 말하며, 성능 평가 기준으로 사용되기도 한다.- 처리 능력 향상 : 자원 관리를 통해서 세스템이 처리하는 일의 양을 향상시킨다.- 반환 시간 단축 : 사용자가 요청한 작업 소요 시간을 단축시킨다.- 사용 가능도 향상 : 시스템 자원을 얼마나 빨리 제공할 수 있는지를 의미한다.- 신뢰도 향상 : 주어진 문제를 정확하게 푸는 ..