[CS] 프로세스(process)와 스레드
CS/CS2022. 10. 25. 22:14[CS] 프로세스(process)와 스레드

프로세스 : 컴퓨터에서 실행되고 있는 프로그램을 말함. CPU 스케쥴링의 대상이 되는 작업(task)라는 용어와 유사한 의미. 스레드 : 프로세스 내 작업의 흐름을 지칭. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화 일어나고, 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행. 1. 프로세스와 컴파일 과정 - 프로세스 : 프로그램으로부터 인스턴스화 된 것을 말함. ㄴ ex) 프로그램 : chrome.exe / 두번 클릭시 구글 크롬 '프로세스' 시작. 1. 컴파일러(Compiler) - 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어 혹은 컴퓨터 언어로 옮기는, 일종의 번역 프로그램. - 비주얼, 터보, 볼랜드 등 언어에 따라 다양한 컴파일러 종류가 존재한다. - 보통 ..

[CS] CPU스케줄링 알고리즘
CS/CS2022. 10. 25. 22:14[CS] CPU스케줄링 알고리즘

CPU스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야하는 일을 스레드 단위로 CPU에 할당함. 프로그램이 실행 될 때, CPU 스케쥴링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정. 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(ready que)에 있는 프로세스는 적게, 응답시간은 짧게 설정하는것을 목표로 함. 1. 비선점형 방식(non-preemptive) - 프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않음. ㄴ컨텍스트 스위칭으로 인한 부하가 적음. 1) FCFS(First Come, Fist Served): 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘 - 길게 수행되는 프로세스 때문에 준비 큐에서 오래 기다리는 현상(co..

[CS] 운영체제(OS)와 컴퓨터
CS/CS2022. 10. 25. 21:55[CS] 운영체제(OS)와 컴퓨터

컴퓨터 : 하드웨어와 소프트웨어를 관리하는 운영체제와 CPU, 메모리 등으로 이루어짐. 1. 운영체제의 역할과 구조 1] 운영체제의 역할 1) CPU 스케쥴링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원할당 및 반환 관리. 2) 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당할지 관리. 3) 디스크 파일 관리 : 디스크 파일을 어떤 방법으로 보관 할 지 관리. 4) I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터간에 데이터를 주고받는 것을 관리. 2] 운영체제의 구조 - 유저 프로그램과 하드웨어 사이를 운영체제라고 부름 cf) 리눅스 서버 : GUI 없이 CUI만 있음. 더보기 * GUI : 사용자가 전자장치과 상호 작용할..

[CS] 메모리란?
CS/CS2022. 10. 25. 21:55[CS] 메모리란?

CF) CPU : '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐. 1. 메모리 계층 : 레지스터, 캐시, 저장장치. - 레지스터 : CPU 안에 있는 작은 메모리. 휘발성. 속도 : 가장 빠름. 기억용량 : 가장 적음. - 캐시 : L1, L2 캐시를 지칭. 휘발성. 속도 빠름. 기억용량 적음. (L3캐시도 있음). - 메모리(RAM, 주기억장치) : RAM. 휘발성. 속도 : 보통. 기억용량 : 보통. ㄴ HDD로부터 일정량의 데이터를 복사, 임시저장 후 필요시마다 CPU 에 전달. - 보조기억장치 : HDD, SDD를 일컬음. 휘발성. 속도낮음, 기억용량 많음. 1] 캐시(cache) : 데이터를 미리 복사해 놓는 임시 저장소. - 빠른 장치와 느린 장치에서 속도 차이에 따른 병목현상을 줄..

CS/CS2022. 10. 25. 21:54[CS] 운영체제와 컴퓨터

* 운영체제(OS, Operating System) : 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스. - 한정된 메모리나 시스템 자원을 효율적으로 분배. - cf) 펌웨어(firmware) : 운영체제와 유사하지만, 소프트웨어를 추가로 설치할 수 없는 것. 1. 운영체제와 컴퓨터 2. 메모리 3. 프로세스와 스레드 4. CPU 스케줄링 알고리즘

[CS] HTTP(HTTP/1.0, HTTP/1.1, HTTP/2, HTTPS, HTTP/3)
CS/CS2022. 10. 4. 22:01[CS] HTTP(HTTP/1.0, HTTP/1.1, HTTP/2, HTTPS, HTTP/3)

HTTP(Hyper Text Transfer Protocol) - 인터넷에서 HTML 문서와 같은 데이터를 주고받을 수 있도록 해주는 프로토콜. - 애플리케이션 계층으로, 웹 서비스 통신에 사용. 1. HTTP/1.0 - 한 연결당 하나의 요청을 처리하도록 설계됨 -> RTT증가 ㄴ 서버로부터 파일을 가져올 때 마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문. *RTT : 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간. RTT의 증가를 해결하기 위한 방법 - RTT가 증가 -> 서버에 부담이 많이 가고 사용자 응답 시간이 길어짐. ㄴ 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 사용. 이미지 스플리팅 - 많은 이미지를 다운로드받게 되면..

[CS] IP주소(APR, 홉바이홉통신, 주소체계, 주소를 이용한 위치정보)
CS/CS2022. 10. 4. 21:55[CS] IP주소(APR, 홉바이홉통신, 주소체계, 주소를 이용한 위치정보)

IP(Internet Protocol) : 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약 1. ARP(Address Resolution Protocol)란? - IP주소(가상주소)로부터 MAC주소(실제주소)를 구하는, IP와 MAC 주소의 다리역할을 하는 프로토콜. RARP(Reverse Address Resolution Protocol) : MAC주소를 IP주소로 변환 - 호스트가 ARP Request 브로트캐스트를 보내, IP주소에 해당하는 MAC주소를 찾음. 이후 해당하는 장치가 ARP reply 유니캐스트를 통해 MAC 주소를 반환하여 IP주소에 해당하는 MAC주소 찾음. 더보기 * 프로토콜 : 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하..

[CS] 네트워크의 기초(처리량, 지연 시간, 토폴로지, 병목, 명령어, 프로토콜 표준화,. )
CS/CS2022. 9. 27. 21:46[CS] 네트워크의 기초(처리량, 지연 시간, 토폴로지, 병목, 명령어, 프로토콜 표준화,. )

네트워크(Network)란? 네트워크 : 컴퓨터 등의 장치들이 통신기술을 이용하여 구축하는 연결망을 지칭하는 용어. - 노드(node)와 링크(link)가 서로 연결되어있거나 연결되어있지 않은 집합체를 의미. 더보기 * 노드 : 서버, 라우터, 스위치 등 네트워크 장치를 의미. * 링크 : 유선 또는 무선을 의미. 1. 처리량과 지연 시간 네트워크 구축시 중요한 것은 '좋은' 네트워크로 만드는 것이 중요. 좋은 네트워크 처리량 지연 시간 장애 빈도 보안 상태 많음 짧음 적음 좋음 처리량(throughput) 처리량 : 링크를 통해 전달되는 단위 시간당 데이터양을 말함. ㄴ 단위 : bps(bits per second). 초당 전송 또는 수신되는 비트의 수를 의미. ㄴ 처리량에 영향을 주는 요소 : 트래픽..

[CS] 네트워크 기기(처리 범위, 애플리케이션, 인터넷, 데이터 링크, 물리 계층)
CS/CS2022. 9. 27. 21:46[CS] 네트워크 기기(처리 범위, 애플리케이션, 인터넷, 데이터 링크, 물리 계층)

네트워크 기기 : 네트워크 구축의 기반이 되는 기기 1. 네트워크 기기의 처리 범위 - 네트워크 기기는 계층별로 처리 범위를 나눌 수 있음. - 상위(애플리케이션쪽에 가까운) 계층을 처리하는 기기는 하위 계층 처리 가능.(반대는 불가능) 각 계층별 네트워크 기기 : • 애플리케이션 계층: L7 스위치 • 인터넷 계층: 라우터, L3 스위치 • 데이터 링크 계층: 브리지, L2 스위치 • 물리 계층: NIC, 리피터, AP 2. 애플리케이션 계층을 처리하는 기기 L7 스위치 - 로드밸런서라고도 하며, 서버의 부하는 분산하는 기기. - 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할. - 시스템이 처리할 수 있는 트래픽 증가가 설치 목표. - URL, 서버, 캐시, 쿠키들을 기반으로 트래픽을 ..

[CS] OSI 7계층, TCP/IP 4계층 모델이란?(계층 구조, PDU)
CS/CS2022. 9. 27. 21:46[CS] OSI 7계층, TCP/IP 4계층 모델이란?(계층 구조, PDU)

OSI 7계층 모델이란? 1계층 - 물리계층(Physical Layer) : 통신 케이블, 리피터, 허브 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 2계층 - 데이터 링크계층(DataLink Layer) : 스위치 브릿지나 스위치를 통해 맥주소를 가지고 물리계층에서 받은 정보를 전달 프레임(데이터 통신단위)에 주소부여(MAC - 물리적주소) 에러검출/재전송/흐름제어 3계층 - 네트워크 계층(Network Layer) : 주소부여(IP), 경로설정(Route) 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅) 신뢰성(에러제어) 및 흐름제어 기능이 전혀 없음(TCP에 있음) 4계층 - 전송 계층(Transport Layer) : TCP, UDP 패킷 생성(Assem..

CS/CS2022. 9. 27. 21:45[CS] 네트워크란?

네트워크 : 컴퓨터 등의 장치들이 통신기술을 이용하여 구축하는 연결망을 지칭하는 용어. - 노드(node)와 링크(link)가 서로 연결되어있거나 연결되어있지 않은 집합체를 의미. 더보기 * 노드 : 서버, 라우터, 스위치 등 네트워크 장치를 의미. * 링크 : 유선 또는 무선을 의미. 1. 네트워크의 기초 2. TCP/IP 4계층모델 3. 네트워크 기기 4. IP주소 5. HTTP

[CS] 옵저버 패턴 (observer pattern)
CS/CS2022. 9. 20. 21:56[CS] 옵저버 패턴 (observer pattern)

옵저버 패턴(observer pattern)이란? - 주체가 어떤 객체의 상태 변화를 관찰하다가, 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴. - 주체과 관찰 대상 객체가 합쳐진 패턴 또한 존재. - 주로 이벤트 기반 시스템에 사용하며, MVC(Model-View-Controller)패턴에도 사용됨. ㄴ 주체(모델)에서 변경사항이 생겨 update()메서드로 옵저버인 뷰에 알려주고, 이를 기반으로 컨트롤러 작동. //옵저버 패턴 예시 public interface Subject { public void registerObserver(Observer o); public void removeObserver(Observer o); public voi..

image