https에서 사용하는 SSL Handshaking 방식 및 대칭 / 비대칭키 암호화 방식
·
CS/Computer Network
HTTP 서로 다른 시스템들 사이에서 통신을 주고 받게끔 하는 프로토콜로, 암호화 되지 않는다는 단점이 있음. HTTPS HTTP에 SSL을 사용하는 프로토콜로, SSL은 서버와 브라우저 사이에서 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버와 브라우저가 민감한 정보를 주고 받을때, 해당 정보가 도난당하는 것을 막아줌. Http Message Body를 암호화 함. HTTPS를 사용하는 이유 1. 보안성을 위해서. http 프로토콜은 암호화되지 않아서 해커의 공격을 받았을 때 사용자의 정보가 쉽게 노출될 수 있다는 우려가 있음. 그러나 https는 암호화 되어있기 때문에, 보안성이 http방식에 비해 우수함. 데이터가 중간에 가로채어서 수정되지 않음을 보장함. 2. https를 통해서 웹사이트의..
데드락과 데드락을 해결하는 방안
·
CS/Operating Systems
데드락이란? 두 개 이상의 프로세스가 자원을 점유한 상태에서 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업을 끝나기만을 기다리며 둘 다 영원히 끝나지 않는 것. 교착상태의 발생 조건 아래의 4가지가 모두 성립되어야 한다. 1. 상호 배제 - 자원은 한 번에 한 프로세스만 사용 가능. 2. 점유 대기 - 최소한 하나의 자원을 점유하고 있으며, 다른 프로세스에 할당되어 사용하고 있는 자원을 점유하기 위해 대기 상태가 있어야 함. 3. 비선점 - 다른 프로세스에 할당된 자원은 사용이 끝날때 까지 강제로 빼앗을 수 없음 4. 순환 대기 - 여러 프로세스가 있을 때, 각 프로세스들이 꼬리를 물며 점유한 자원을 대기한 상태여야하고, 마지막 프로세스가 첫 프로세스가 점유한 자원을 요구해야함. 비유하자면..
Context Switching
·
CS/Operating Systems
Context Switch cpu가 현재 작업중인 프로세스에서 다른 프로세스로 넘어갈 때 지금까지의 프로세스 상태를 저장하고 새 프로세스의 저장된 상태를 다시 적재하는 작업을 Context Switching이라 한다. 1. Pointer : 프로세스의 준비상탠 대기상태의 큐를 구현할 때 Pointer를 사용함 2. 상태 : 현재 프로세스가 어떤상태인지 나타냄 3. 프로세스 구분자 : 프로세스 id 4. 프로세스 카운터 : 다음에 실행될 명령어의 위치를 가리키는 PC의 값을 저장함 5. 레지스터 정보 : 실행되는 중에 사용하던 중간값들 보관됨 6. 메모리 정보 : 프로세스의 메모리 위치정보 및, 경계 레지스터 값, 한계 레지스터 값 보관됨 - Task의 대부분 정보는 레지스터에 저장되고, PCB로 관리되고..
프로세스와 스레드의 차이
·
CS/Operating Systems
Program 명령어의 집합으로, 어떤 작업을 수행하기 위한 파일입니다. Process 운영체제로부터 시스템 자원을 할당받는 작업의 단위이고, 실행된 프로그램을 의미합니다. 각각의 프로세스는 코드, 데이터, 스택, 힙 영역을 포함하는 독립적인 메모리 공간을 할당받습니다. 프로세스가 사용하는 메모리 공간은 다음과 같습니다. 1. 코드 영역: - 프로그램의 실제 실행 코드가 저장되는 영역. - 읽기 전용으로 되어있어서 프로그램이 실행중에 수정할 수 없습니다. 2. 데이터 영역(static영역이라고도 함): - 전역변수와 정적변수가 저장되는 영역. - 초기화된 데이터와 초기화되지 않은 데이터 포함허묘ㅡ 프로그램 실행 도중에 값을 변경 가능합니다. 3. 스택 영역: - 함수 호출과 관련된 정보를 저장하는 영역...
동시성과 병렬성
·
CS/Operating Systems
동시성 동시성이란, 동시에 처리하게끔 보이는 것으로 서로 다른 작업들이 서로 영향을 주면서 동시에 실행되는 것처럼 보이게 하는 것입니다. 사용 코어수는 싱글로, 동작 방식은 싱글 코어에서 멀티스레드를 동작시키는 방식입니다. 위의 그림에서 왼쪽에 해당하는 내용이지요. 다른 작업으로 바꾸어 실행될 때, 내부적으로 Context Switch가 실행됩니다. 여기서 Context Switch란? 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스로 전환되는 것을 의미합니다. CPU에서 작업중인 프로세스를 Waiting상태로 돌리고, 다른 프로세스를 Running 상태로 만들어 수행합니다. (실행 중지할 프로세스 정보를 메인메모리에 저장하고, 메인메모리로부터 프로세스2 PCB정보를 로드하여 다음 작업을 실..
대규모 시스템 설계시 참고해야할 것들 1
·
CS/System Design
'가상 면접 사례로 배우는 대규모 시스템 설계 기초'를 읽고 중요해 보이는 부분만 아주 간략히 요약해보았습니다. 가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 알렉스 쉬 - 교보문고 (kyobobook.co.kr) 가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 알렉스 쉬 - 교보문고 가상 면접 사례로 배우는 대규모 시스템 설계 기초 | “페이스북의 뉴스 피드나 메신저,유튜브, 구글 드라이브 같은 대규모 시스템은 어떻게 설계할까?” IT 경력자라도 느닷없이 대규모 시스템 product.kyobobook.co.kr 시스템을 확장하기 위해 알아야 하는 기본 지식 수직적 규모 확장 - 서버에 고사양 자원을 추가하는 행위 수평적 규모 확장 - 더 많은 서버를 추가하여 성능을 개선하는 행위 => 한 ..
교착 상태
·
CS/Operating Systems
2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만을 기다리며 작업을 더 이상 진행하지 못하는 상태를 교착상태라고 합니다. 이러한 교착 상태는 시스템 자원, 공유 변수, 응용 프로그램과 같이 다른 프로세스와 공유할 수 없는 자원을 사용할때 발생합니다. 교착 상태의 필요 조건으로는 4가지가 있습니다. 1. 상호배제 : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 합니다. 배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없습니다. 2. 비선점: 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없어야 합니다. 자원을 빼앗을 수 없으면 공유할 수도 없으므로 교착상태가 발생할 수 있습니다. 3. 점유와 대기 : 프로세스가 어..
프로세스 주소공간
·
CS/Operating Systems
프로세스의 주소공간은 총 3가지로 나뉩니다. 코드 영역 프로그램의 코드가 저장되는 곳으로, 읽기만 가능합니다. 데이터 영역 전역 변수 같은 데이터가 저장되는 곳으로, 읽고 쓰기가 가능합니다. 스택 영역 함수나 지역 변수가 저장되는 곳으로 읽고 쓰기가 가능합니다. 주소 공간을 나눈 이유는 최대한 데이터를 공유하며 메모리 사용량을 줄여야하기 때문입니다. stack과 데이터를 나눈 이유는 스택 구조의 특성과 전역 변수의 활용성을 위함입니다.
프로세스와 스레드
·
CS/Operating Systems
먼저 프로그램과 프로세스의 차이부터 설명해보자면, 프로그램은 저장장치에 저장되어 있는 정적인 상태이고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태입니다. 우선 운영체제는 프로그램을 메모리의 적당한 위치로 가져오고, 동시에 작업 지시서를 만드는데 이를 PCB(프로세스 제어블록)이라고 합니다. 이 프로세스 제어블록에는 프로세스를 처리할때 필요한 다양한 정보가 들어있습니다. 이 프로세스 제어블록이 없다면 프로그램이 프로세스로 전환되지 못합니다. 즉 프로그램이 프로세스가 된다는 것은 운영체제로부터 프로세스 제어블록을 얻는다는 뜻이고, 프로세스가 종료된다는 것은 해당 프로세스 제어 블록이 폐기된다는 뜻입니다. 프로세스 = 프로그램 + 프로세스 제어 블록 프로그램 = 프로세스 - 프로세스 제어블록 * 프로..
takoyummy
'CS' 카테고리의 글 목록