일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- python
- react
- VUE
- Level2
- typescript
- 고득점Kit
- 동적계획법
- CS
- 자바스크립트
- Level1
- 백준
- 배열
- 프로그래머스
- javascript
- Medium
- LeetCode
- 프로그래밍
- Level3
- OS
- 파이썬
- 리트코드
- sql
- 웹프로그래밍
- 리액트
- dp
- Doitvue.js입문
- C++
- web
- 카카오
- 코테연습
- Today
- Total
목록CS (27)
네트워크 보안 Confidentially : 메시지를 교환할 때 해당 내용을 다른 사람이 확인할 수 없어야 함 authentication: 내가 메시지를 주고 받는 상대방에 대한 검증 message intergrity: 메시지 내용이 변하지 말아야함 access and avaiablity 대칭키 = 개인키 암호화 (Symmetric Key, Private key) 암호화와 복호화에 같은 암호키를 사용하는 알고리즘이다. 장점 동일한 키를 주고 받기 때문에 매우 빠르다. 단점 대칭키 전달 과정에서 해킹 위험에 노출 될 수 있다. 사용자의 증가에 따라 관리해야할 키의 수가 상대적으로 많아진다. 공개키 (Public key) 암호와 복호화에 사용되는 암호키를 분리한 알고리즘이다. 자신이 가지고 있는 개인키로만 ..
교착 상태 (Dead Lock) 교착 상태란 2개 이상의 프로세스들이 서로의 자원을 얻지 못해서 진행할 수 없는 상황을 말한다. 프로세스에게 한정된 자원이 할당되었을 때 프로세스들의 자원 부족으로 더 이상 실행할 수도 없으며, 종료 후에 다른 작업을 시작하는 것도 불가능한 상태를 말한다. block된 프로세스들은 각각의 자원을 가지고 다른 프로세스가 점유한 자원을 얻기를 기다리고 있는 상태이다. 두 프로세스는 무한정 wait 상태에 빠지게 된다. 자원은 한 번에 하나의 프로세스에 의해서만 사용될 수 있고 non preemtable resource로 선점 불가능 하기 때문에 일반적으로 데드락이 발생한다. 데드락 발생 조건 하나라도 만족하지 않으면 데드락은 해결된다. 상호 배제 Mutal exclusion ..
프로세스 동기화 멀티 쓰레드 프로그램에서 쓰레드들은 자원을 공유하며 협력한다. 이때 공유 자원 접근 시에 동기화가 보장되지 않으면 Race condition이 발생할 수 있고 부정확한 결과로 이어진다. 이를 방지하기 위한 방법을 동기화라고 한다. 동기화라는 것은 공유 자원을 어떠한 프로세스가 사용하고 있을 경우 값이 반환되기 전까지 blocking 하는 것을 말한다. 즉, Critical section에 대한 상호 배제를 제공해 race condition을 회피하는 방법이다. Race condition 쓰레드에 의해서 공유 자원에 접근한 결과가 스케줄러에 의한 접근 타이밍에 의존해 결정되는 상태이다. 결과를 예측할 수 없고 싱글 프로세스이든 멀티 프로세스이든 발생할 수 있다. 임계 구역 문제 (Criti..
TCP (Transmission Control Protocol) unreliable network에서, reliable network를 보장할 수 있도록 하는 프로토콜 송신자와 수신자가 모두 소켓이라는 종단점을 생성함으로써 이루어다. TCP의 연결 설정은 3-way hand shake를 통해 이뤄진다. full-duplex : 전송이 양방향으로 동시에 일어날 수 있다. point to point : 각 연결이 정확히 2개의 소켓을 가지고 있음을 의미한다. 멀티 캐스팅이나 브로드 캐스팅을 지원하지 않는다. 소켓 사이에 바이트 스트림을 전송하도록 설계 되어 신뢰성이 보장된다. 메시지가 유실되지 않고 메시지가 내려온 순서대로 전송된다. 연결지향적이다. 흐름제어, 혼잡 제어 기능을 한다. TCP 흐름제어 상대방..
OSI 7 계층 통신이 일어나는 과정을 단계별로 알 수 있고 이상이 생기면 그 단계만 수정할 수 있다. 서로 다른 시스템 간을 상호 접속하기 위한 개념을 규정한다. 7. 응용계층 (Application Layer) 사용자(응용프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공한다. 데이터 단위 :메시지 6. 표현계층 (Present Layer) 응용 계층으로부터 받은 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당한다. JPEG, MPEG, SSL 데이터 단위 :메시지 5. 세션계층 (Session Layer) 데이터가 통신하기 위한 논리적 연결을 담당한다. TCP/IP 세션을 만들고 없애는 책임을 지니고 있다. 대화 구성 및 동기 제어, 데이터 교환 관리 기능을 한다. 프로토콜: A..
스케줄러 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업이다. CPU나 자원을 효율적으로 사용하기 위한 정책으로 오버헤드를 줄이고 CPU 사용률을 높여 기아 현상을 줄이는 것을 목표로 한다. Batch System: 가능하면 많은 일을 수행. 시간보다 처리량이 중요 Interactive System: 빠른 응답 시간, 적은 대기 시간 Real-time System: 기한(dead line) 맞추기 Terminologies CPU가 Operation을 수행하는데 걸리는 시간을 CPU Burst라고 한다. CPU가 I/O를 기다리는데 걸리는 시간을 I/O Burst 라고 한다. 모든 프로세스는 CPU - I/O burst를 번갈아 가면서 실행 I/O에 의해 bloc..
스레드 프로세스의 실행 단위라고 할 수 있다. 프로세스 안에서 실행 되는 여러단위를 스레드라고 하며 기본적으로 프로세스마다 메인 스레드를 포함하여 최소 1개의 스레드를 갖는다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합 그리고 스택으로 구성된다. 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션 그리고 열린 파일이나 신호와 같은 운영체제 자원을 공유한다. 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상 시키는 것을 멀티 스레딩이라고 한다. 이 경우 각각의 스레드는 독립적인 작업을 수행해야하기 때문에 각자의 스택과 PC 레지스터 값을 가지고 있다. 스택을 스레드마다 할당하는 이유 스택은 함수 호출시 전달되는 인자, ..
프로세스 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 운영체제로 부터 주소공간, 파일, 메모리 등을 할당 받으며 이것을 총칭하여 프로세스라고 한다. job = task = process 프로세스는 다음을 포함한다. 스택 (stack): 함수의 매개변수, 로컬 변수와 같은 임시 자료 스택의 할당과 할당 해제는 런타임에 일어나지만 스택의 각 프레임은 컴파일 타임에 결정된다. 힙 (heap) : 프로세스 실행 중에 동적으로 할당되는 메모리 데이터 (data): 전역 변수들을 저장 코드(Code) : 코드 자체를 구성하는 메모리 영역 Execution Sequence and Stack 실행 순서를 제어하기 위해 흔히 스택을 사용한다. call st..