1. CPU 스케줄링이란?언제 어떤 프로세스에 CPU를 할당할지 결정하는 작업 2. 목적CPU 스케줄링 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐에 있는 프로세스는 적게, 응답시간은 짧게 설정하는 것따라서 CPU 스케줄러가 스케줄링을 결정할 때는 아래와 같다. CPU 스케줄러가스케줄링을 결정할 때실행(running) 상태에서 대기(waiting) 상태로 전환(switching)될 때실행(running) 상태에서 준비(ready) 상태로 전환(switching)될 때대기(waiting) 상태에서 준비(ready) 상태로 전환(switching)될 때종료(Terminated)될 때👉 1, 4번 상황에서만 스케줄링이 발생하는 것을 비선점형(non-preemptive) 스케줄..
Computer Science
1. 개념 - 프로세스란?정의: 컴퓨터에서 실행 중인 하나의 프로그램특징OS로부터 독립된 메모리 영역(코드, 데이터, 스택, 힙)을 할당받음다른 프로세스의 메모리 영역에 접근할 수 없음프로세스에 할당된 메모리 영역프로세스의 메모리 영역 구조스택 stack- 정의: 지역 변수, 함수의 매개변수, 반환되는 주소 값 등이 저장되는 영역- 메모리 할당 방식: 높은 주소 값에서 낮은 주소 값으로- 영역 크기: 컴파일 때 결정됨힙 heap- 정의: 사용자에 의해 동적 메모리 할당이 일어나는 영역- 메모리 할당 방식: 낮은 주소 값에서 높은 주소 값으로- 영역 크기: 런타임 때 결정됨데이터 data- 정의: 전역 변수, 정적 변수, 배열, 구조체 등이 저장되는 영역- 데이터 영역 : BSS 영역(Block Stat..
CPU(Central Processing Unit, 중앙 처리 장치)는 '컴퓨터의 뇌' 역할을 하며,컴퓨터에서 프로그램을 실행하는 데 필요한 연산을 처리하고 수행한다.다른 말로 프로세서라고도 한다. 메모리는 데이터를 저장하기 위한 기억장치로,휘발성 메모리인 주 기억장치와 비휘발성 메모리인 보조 기억 장치가 있다.주 기억장치는 메인 메모리를 의미하며 일반적으로 RAM을 가리킨다.보조 기억장치는 SSD(Solid State Drive), HDD(Hard Disk Drive) 등이 해당한다.메모리는 CPU에서 빨리 접근할 수 있도록 아래와 같이 계층 구조로 나뉜다. 레지스터CPU가 사용자 요청을 처리하는 데 필요한 데이터를 임시로 저장하는 기억장치CPU 내부에 존재하며 접근 속도가 빠름캐시CPU와 RAM 사이..
컴퓨터와 운영체제를 왜 배워야 할까?이것은 팀 프로젝트를 하면 바로 알 수 있다.분명히 같은 코드를 짰는데도 어떤 컴퓨터에서는 제대로 작동되고, 어떤 컴퓨터에서는 제대로 작동되지 않는다.컴퓨터의 구조가 다르거나 운영체제가 다른 경우 이렇게 다른 결과가 나올 수 있다.또한, 클라우드 서비스를 이용해 서버를 만들 때 cpu, 메모리, 저장 용량을 설정해야 한다.컴퓨터의 구조에 대해서 이해하고 있어야 설정이 가능하다는 얘기다.또한, 운영체제가 없다면 개발자들은 하드웨어에 접근하는 코드를 직접 작성해야 하므로 번거로워진다.개발자로서 컴퓨터와 운영체제에 대해 잘 아는 것은 필수라고 할 수 있다.따라서 컴퓨터 구조와 운영체제에 대해서 공부해보도록 하겠다. 1. 운영체제의 개념운영체제는 하드웨어 자원을 관리하여 시스..
0. Scale-up vs Scale-out 로드밸런서에 대해서 설명하기에 앞서, scale-up, scale-out에 대해서 알아보자.scale-up, scale-out은 규모 확장을 통해 성능을 개선하는 방법이다.이 둘은 차이가 있다. - scale-up정의: 수직적 규모 확장(vertical scaling). 서버에 고사양 자원(CPU, 많은RAM 등)을 추가하는 행위용도: 서버로 유입되는 트래픽의 양이 적을 때 사용장점: 단순함단점수직적 규모 확장에 한계가 있음. 한 개의 서버에 CPU나 RAM을 무한대로 증설할 방법이 X장애에 대한 자동복구 방안이나 다중화 방안 제시 X. 만약 서버에 장애가 발생한다면 웹/앱 완전 중단됨👉 이러한 단점 때문에, 대규모 애플리케이션을 지원하는 데는 scale-..
보안 시 키를 사용해 평문을 암호문으로 암호화하고 키를 사용해 암호문을 평문으로 복호화한다.암호화 방식에는 크게 대칭키 암호화 방식과 비대칭키 암호화 방식이 있다. 1. 대칭키 Symmetric Key 알고리즘정의: 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘👉 대칭키를 가진 사람은 암호화와 복호화를 모두 할 수 있음대표 알고리즘: DES, 3DES, AES, SEED 등장점비대칭키 암호화 방식에 대해서 속도가 빠름단점중간에 누군가 암호 키를 가로채면 암호화된 정보가 유출될 수 있다는 단점이 있음사람이 증가할수록 따로따로 키 교환을 해야 하기 때문에 관리해야 할 키가 방대하게 많아짐👉 이러한 단점들을 보완한 것이 비대칭키(공개키) 2. 비대칭키 Asymmetric Key 알고리즘정의: 암호화와 ..
0. 맥주소(MAC address)네트워크 상에서 서로를 구분하기 위하여 Device마다 할당된 물리적 주소인터넷이 가능한 장비들이 가지고 있는 물리적인 주소MAC주소는 12자리 숫자로 구성되어 있음. 숫자 중 앞의 6자리(24bit)는 제품제조사에서 할당되며 나머지 6자리(24bit)는 각 제품제조사에서 제품에 할당함컴퓨터에 장착되어 LAN카드를 구별하기 위해 만들어진 식별 번호(소프트웨어 대신 하드웨어에 연결되어 있기 때문에 실제 주소라고도 함)통신을 위해서는 MAC 주소를 알아야 함. IP 주소로 MAC 주소를 알기 위해서는 IP주소를 MAC으로 바꾸는 ARP과정이 필요함 ARP가 궁금하다면? ↓↓2024.05.29 - [Computer Science/Network] - [Network] OSI 7..
0. 개요 - 용어 정리통신 communication: 데이터를 주고 받는 행위애플리케이션 application: 통신에 사용하는 프로그램송신자 sender: 통신에서 데이터를 전송하는 사람수신자 receiver: 통신에서 데이터를 받는 사람 - 흐름제어와 혼잡제어가 필요한 이유송신자가 수신자에게 데이터를 전송하고 수신자는 송신자가 보낸 데이터를 빠짐없이 순서에 맞게 받을 수 있으면 좋겠지만, 현실의 네트워크는 그렇지 않다.현실의 네트워크는 송신자가 보낸 데이터를 잃어버리기도 하고, 데이터의 순서가 바뀌기도 한다.이러한 네트워크를 비신뢰적 네트워크라고 부른다. 비신뢰적 네트워크에서 발생하는 문제손실 lost: 패킷이 손실될 수 있음순서 바뀜: 패킷의 순서가 바뀔 수 있음혼잡 Congestion: 네트워크..
TCP란 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다.애플리케이션에게 신뢰적이고 연결지향성 서비스를 제공한다.TCP는 장치들 사이에 논리적인 접속을 성립하기 위해서 3-way handshake를 사용한다.TCP에 대해서 더 자세히 알아보고 싶다면? ↓↓2024.05.30 - [Computer Science/Network] - [Network] TCP와 UDP 1. 3-way handshake- 정의TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정 - 역할3way handshake는 양쪽 모두 데이터를 전송할 준비가 되어 있다는 것을 보장하고, 실제로 데..
TCP와 UDP는 OSI 7계층들 중 TCP/IP 전송 계층에서 사용되는 프로토콜이다. 1. TCP- 개념Transmission Control Protocol연결 지향적 프로토콜: 클라이언트와 서버가 연결된 상태에서 데이터를 주고 받는 프로토콜장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해 신뢰성을 보장하는 연결형 서비스네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메시지, 세그먼트라는 블록 단위)을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 함 - 특징연결형 서비스로 가상 회선 방식을 제공3-way handshaking 과정을 통해 연결을 설정함4-way handshaking 과정을 통해 연결을 해제함흐름 제어 (Flow control)데이터 처리 속도를 ..