3-3. 프로세스와 스레드 [02] - 스레드와 멀티스레딩, 공유 자원과 임계 영역, 교착 상태
·
CS 스터디
1. 스레드와 멀티스레딩1) 스레드스레드는 프로세스 내에서 실행되는 가장 작은 단위이자 CPU 스케줄링의 기본 단위이다. 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. 스레드는 스택과 레지스터만 독립적이고, 코드와 데이터, 힙을 공유한다. 2) 멀티스레딩멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드를 동시에 생성하고 처리한다. 스레드끼리 서로 메모리 자원을 공유하기 때문에 자원 소모가 적고 통신 비용이 높아 효율성이 높다. 2. 공유 자원과 임계 영역1) 공유 자원공유 자원은 멀티 프로세싱 환경이나 멀티 스레딩 환경에서 동시에 접근하여 사용할 수 있는 데이터나 자원을 의미한다. 하지만, 여러 프로세스나 스레드가 동시에 공유 자원에 접근하여 값을 변경할 때, 실행 순서에 따라 결과가 달..
3-3. 프로세스와 스레드 [01] - 프로세스와 컴파일 과정, 상태, 메모리 구조, PCB, 멀티프로세싱
·
CS 스터디
0. 프로세스란?프로세스는 컴퓨터에서 실행 중인 프로그램을 말한다. 운영체제로부터 자원(CPU, 메모리, 입출력 장치 등)을 할당받아 동적으로 활동하는 개체이다. 프로그램이 메모리에 올라가면 프로세스가 되고, CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 즉, 프로세스는 프로그램이 메모리에 올라가 인스턴스화 된 것을 말한다. 1. 프로세스와 컴파일 과정프로그램의 소스 코드가 기계어로 변환되어 실행 가능한 파일로 만들어지기까지의 과정을 말한다. 1) 전처리가장 먼저 수행되는 단계로, 전처리기가 소스코드를 가공한다. 코드에 포함된 #include과 같은 헤더파일과 #define으로 정의된 매크로를 실제 값이나 코드로 치환한다. 2) 컴파일러전처리된 소스파일을 어셈블리어 코드로 변환하는 단계이다. ..
3-2 메모리 - 메모리 계층, 메모리 관리
·
CS 스터디
1. 메모리 계층- 레지스터 : 휘발성, 속도 가장 빠름, 기억 용량 가장 적음- 캐시 : 휘발성, 속도 빠름, 기억 용량 적음- 주기억장치 : 휘발성, 속도 보통, 기억 용량 보통- 보조기억장치 : 비휘발성, 속도 느림, 기억 용량 많음 1) 캐시 (cache)캐시는 CPU가 자주 사용할 데이터를 미리 저장해 놓는 임시 저장소이자, 장치 간의 속도 차이에 따른 병목 현상을 줄이기 위한 메모리이다. 캐시는 CPU와 메인 메모리 사이에 위치하며, 속도 차이를 해결하기 위해 계층과 계층 사이에 있는 계층을 캐싱 계층이라고 한다. 캐시의 효율은 데이터 접근 패턴을 예측하는 지역성 원리에 기반한다.* 지역성 원리 : CPU가 최근에 접근했던 데이터나 그 주변 데이터를 가까운 미래에 다시 접근할 확률이 높다는 성..
3-1. 운영체제와 컴퓨터 - 운영체제의 역할과 구조, 컴퓨터의 요소
·
CS 스터디
0. 운영체제란?운영체제(OS, Operating System)는 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공하는 시스템 소프트웨어이다. 한정된 메모리나 시스템 자원을 효율적으로 분배하며, 종류로는 맥, 윈도우 등이 있다. 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것은 펌웨어(firmware)라고 한다. 1. 운영체제의 역할과 구조1) 운영체제의 역할- CPU 스케줄링과 프로세스 관리 : CPU를 어떤 프로세스에 할당할지(스케줄링), 프로세스의 생성과 삭제, 자원 할당 및 반환 관리- 메모리 관리 : 한정된 메모리를 여러 프로그램에게 나누어 할당, 보호 관리- 디스크 파일 관리 : 디스크 파일을 어떤 방법(저장, 접근, 보호)으로 보관할지 관리- I/O 디바이스 관리 : 마..
2-5. HTTP - HTTP/1.0, HTTP/1.1, HTTP/2, HTTPS, HTTP/3
·
CS 스터디
1. HTTP/1.0HTTP/1.0은 1996년 처음 발표된 버전으로, 웹 통신의 기본적인 요청(Request)-응답(Response) 구조와 HTTP 헤더 개념을 확립한 버전이다. 이로 인해 요청의 성공/실패 여부를 나타내는 응답 상태코드(200 OK, 404 Not Found)를 도입할 수 있었으며, 이미지 및 CSS 등 다양한 종류의 파일을 전송할 수 있게 되었다. 하지만 HTTP/1.0에는 RTT 증가라는 핵심 한계점이 존재한다.* RTT : 패킷이 목적지에 도달한 후 다시 출발지로 돌아오기까지 걸리는 시간 = 패킷 왕복 시간 1) RTT 증가- 1 연결당 1 요청 : 클라이언트가 서버에 하나의 요청을 보내고 하나의 응답을 받으면, 해당 TCP 연결을 즉시 해제하도록 설계되었다.- 잦은 Hands..
2-4. IP주소 - ARP, 홉바이홉 통신, IP 주소 체계
·
CS 스터디
1. ARPARP란 네트워크 통신에서 가상 주소인 IP주소를 실제 주소인 MAC주소로 변환하는 프로토콜이다. RARP는 ARP와 반대 개념으로, MAC주소를 IP주소로 변환하는 프로토콜이다. 1) ARP 작동 원리- 목적지 IP 주소에 해당하는 MAC 주소를 찾기 위해 ARP Request를 브로드캐스트로 전송- 해당 주소와 일치하는 장치는 ARP Replay를 유니캐스트로 전송* 브로드캐스트 : 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식* 유니캐스트 : 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식 2. 홉바이홉 통신홉바이홉 통신이란 네트워크 상에서 데이터 패킷이 최종 목적지까지 도달하기 위해 여러 개의 라우터를 한 단계씩 건너뛰며 전..
2-3. 네트워크 기기 - 애플리케이션, 인터넷, 데이터 링크, 물리 계층 처리 기기
·
CS 스터디
1. 애플리케이션 계층을 처리하는 기기1) L7 스위치L7 스위치는 ADC(Application Delivery Controller) 또는 로드 밸런서라고 불린다. 클라이언트의 요청을 여러 서버로 분산하는 역할을 하며, 시스템 처리 트래픽 증가를 목표로 한다. 바이러스 필터링 기능과 응용 프로그램 수준의 트래픽 모니터링도 가능하다. - 헬스 체크 : 트래픽을 처리하는 서버나 서비스의 정상 작동 여부를 확인하는 것이다. 전송 주기와 재전송 횟수 등을 설정한 후 반복적으로 서버에 TCP, HTTP 요청을 보낸다. 서비스 가용성과 신뢰성을 확보하는 것을 목표로 한다.- 로드 밸런서를 이용한 서버 이중화 : 2대 이상의 서버를 기반으로 가상 IP를 제공하고 안정적인 서비스를 제공한다.- L4 스위치와 L7 스위..
2-2. TCP/IP 4계층 모델 - 계층 구조, PDU
·
CS 스터디
1. 계층 구조인터넷 프로토콜 스위트는 인터넷에서 정보를 주고 받는데 쓰이는 프로토콜의 집합이다. 보통 TCP/IP 4계층 혹은 OSI 7계층으로 설명한다. 각 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되었다. 1) 애플리케이션 계층애플리케이션 계층은 웹 서비스, 이메일 등과 같은 응용 프로그램 간의 통신 서비스를 사용자에게 제공하는 계층이다. - FTP : 장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜- SSH : 보안되지 않는 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜- HTTP : World Wide Web(WWW)를 위한 데이터 통신의 기초이자 웹 사이트 이용 프로토콜- SMTP : 전자 메일 전송을 위한 인터넷..