운영체제란 운영체제(OS, Operating System) 하드웨어 관리, 컴퓨터 시스템 자원 관리, 응용 프로그램과 하드웨어 간의 인터페이스 역할 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 종류: Windows, Linu
프로세스: 프로그램을 메모리 상에서 실행중인 작업스레드: 프로세스 안에서 실행되는 여러 흐름 단위기본적으로 프로세스마다 최소 1개의 스레드를 소유프로세스는 각각 별도의 주소공간 할당 (독립적)Code: 코드 자체를 구성하는 메모리 영역 (프로그램 명령)Data: 전역변
프로그램이 CPU에 의해 실행됨 -> 프로세스가 생성되고 메모리에 프로세스 주소 공간이 할당됨프로세스 주소 공간: 코드, 데이터, 스택코드 Segment: 프로그램 소스 코드 저장데이터 Segment: 전역 변수 저장스택 Segment: 함수, 지역 변수 저장최대한 데
인터럽트란? 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우, 현재 실행 중인 작업을 즉시 중단하고 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것 지금 수행 중인 일보다 더 중요한 일(ex. 입출력, 우선 순위 연산 등)이 발생하면 그 일을
fork(), exec(), wait() 와 같은 것들은 Process 생성과 제어를 위한 System callfork, exec는 새로운 Process 생성과 관련이 되어 있다.wait는 Process(Parent) 가 만든 다른 Process(Child) 가 끝날
Process ManagementCPU가 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것이 때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능함프로세스들의 특징을 갖고 있는 것이 바로 Process MetadataProcess MetadataProce
프로세스는 독립적으로 실행된다. 즉, 독립 되어있다는 것은 다른 프로세스에게 영향을 받지 않는다고 말할 수 있다. (스레드는 프로세스 안에서 자원을 공유하므로 영향을 받는다)이런 독립적 구조를 가진 프로세스 간의 통신을 해야 하는 상황이 있을 것이다. 이를 가능하도록
스케줄링CPU를 잘 사용하기 위해 프로세스를 잘 배정하기조건: 오버헤드 낮추기, 사용률 높이기, 기아 현상 낮추기목표Batch System: 가능하면 많은 일을 수행. 시간(time)보단 처리량(throughout)이 중요Interactive System: 빠른 응답
두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태무한히 다음 자원을 기다리게 되는 상태를 말한다시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생마치 외나무 다리의 양 끝에서 서로가 비켜주기를 기다리고만 있는 것과 같다
네트워크란? 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합 좋은 네트워크란? 처리량 ↑ 지연시간 ↓ 장애빈도 ↓ 보안 ↑ 처리량: 단위 시간 당 데이터 양 단위: bps (
대역폭 (Bandwidth) 공학에서의 대역폭: 특정 기능을 수행할 수 있는 주파수 범위의 폭 네트워크의 대역폭: 단위시간 당 전송할 수 있는 데이터의 최대 용량 네트워크 속도가 대역폭값에 근접할 경우 대역폭을 늘리면 속도가 빨라질 가능성이 있으나, 무조건적인 조건은
OSI 7계층 모델 발생 가능한 attack 국제표준화기구 ISO에서 개발한 모델 각각의 계층별 프로토콜 데이터 단위를 맞추기 위해 상위 계층에서 하위 계층으로 내려갈수록 캡슐화, 하위계층에서 상위계층으로 올라갈수록 역캡슐화 진행 7계층을 나누는 이유 통신이 일어
통신에 앞서 논리적 접속을 성립하기 위해 3 way handshake 과정 진행클라이언트가 서버에서 SYN 패킷을 보냄 (sequence : x)서버가 SYN(x) 받음, 클라이언트로 받았다는 신호 ACK와 SYN 패킷을 보냄 (sequence : y, ACK : x+
전송계층(Layer 3)에서 사용하는 프로토콜\* 전송 계층: 송신자와 수신자 연결하는 통신 서비스, 데이터 전달 담당패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜 기반으로 구현됨1\. 데이터 경계를 구분하지 않음: 바이트 스트림 (byte-stream)
UDP 통신이라 User Datagram Protocol의 약자 데이터를 데이터그램 단위로 처리하는 프로토콜 비연결성, 비신뢰성 전송 프로토콜 전송 계층(Transport layer): 데이터그램 단위로 쪼개면서 전송 TCP와 UDP가 나온 이
암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘동일한 키를 주고받기 때문에, 매우 빠르다는 장점이 있음but, 대칭키 전달과정에서 해킹 위험에 노출암호화와 복호화에 사용하는 암호키를 분리한 알고리즘대칭키의 키 분배 문제를 해결하기 위해 고안됨대칭키일 땐 송수
HTTPS에서 클라이언트와 서버간 통신 전 SSL 인증서로 신뢰성 여부를 판단하기 위해 연결하는 방식 진행 순서 클라이언트는 서버에게 client hello 메시지를 담아 서버로 보낸다. 이 때 암호화된 정보를 함께 담는데, 버전, 암호 알고리즘, 압축 방식 등을 담
HTTP(HyperText Transfer Protocol)인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTP는 텍스트 교환이므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재함 이런 보안 문제 해결해주는 프로
둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것요즘 시대에는 웹사이트에 접속하는 인원이 급격히 늘어나게 됨이 사람들에 대한 모든 트래픽을 감당하기에 1대의 서버는 부족대응 방안1\. 하드웨어 성능 올리기 (Scale-up)2\. 여러 대의 서
블럭/논블럭은 호출된 함수가 호출한 함수에게 제어권을 건네주는 유무의 차이Situation: A -> B 호출Blocking: B 함수가 일을 다 마칠 때까지 제어권을 가짐. A는 B의 수행 완료를 대기Non-blocking: B 함수가 일을 다 마치지 않았더라도 A에
Blocking I/OProcess(Thread)가 Kernel에게 I/O를 요청하는 함수를 호출Kernel 이 작업을 완료하면 작업 결과 반환 받음특징I/O 작업이 진행되는 동안 user Process(Thread)는 자신의 작업을 중단한 채 대기Resource 낭비