Computer Science 9

[운영체제] 교착상태 (Deadlock, 데드락)

교착상태 (DeadLock) ✔️ 정의 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업이 끝나기만을 기다리면서 둘 다 영원히 끝나지 않는 상태이다. 프로세스가 리소스를 이용하는 흐름 Request → Use → Release 요청 (Request) 필요한 자원(resource)을 요청한다. 만약 다른 프로세스가 리소스를 사용중이라서 리소스를 받을 수 없다면 대기 사용 (Use) 프로세스가 요청한 자원을 획득해 사용한다. 반납 (Release) 프로세스가 리소스를 놓아준다. ✔️ 발생 조건 4가지 다음 4가지 조건을 모두 만족해야 데드락이 발생한다. 상호 배제 (mutual exclusion) 적어도 1개 이상의 자원이 공유 불가능해야 함 ..

[운영체제] Thread란?

✔ 정의 스레드는 CPU 이용의 가장 작은 단위이다. 구성 스레드 ID 프로그램 카운터 (PC) 레지스터 집합 스택 같은 프로세스에 속한 스레드들은 코드 섹션, 데이터 섹션, OS 리소스같은 운영체제 자원들을 공유한다. 프로세스가 멀티 스레드를 갖게 되면, 한 번에 한 개 이상의 task를 수행할 수 있게 된다. 대부분의 현대 운영체제는 한 프로세스가 다중 스레드를 가진다. 생긴 이유 하나의 응용 프로그램이 여러 개의 비슷한 작업을 처리해야 할 때 단일 스레드 프로세스의 경우 한 번에 하나의 클라이언트만 처리할 수 있어 시간이 오래걸린다. 그래서 보통 서비스 요청당 별도의 프로세스를 만드는데 프로세스를 만드는 작업은 많은 시간과 리소스가 필요하다. 이 때 새 프로세스가 기존 프로세스와 하는 일이 동일하다..

[운영체제] Process란?

✔ 개념 디스크에 있는 것은 프로그램, 프로그램을 실행하기 위해 메모리에 로드된 것은 프로세스라고 한다. 프로세스는 Stack, Heap, Data, Code로 나뉜다. Stack 주로 함수(function parameters, return address, local variables)와 같은 임시 데이터 저장소이다. heap 프로그램이 실행되면서 동적 할당되는 메모리 공간이다. data 전역 변수가 저장된다. text 실행되는 코드가 저장된다. ✔ Process State 프로세스의 상태는 현재 활동에 따라 달라진다. new 프로세스가 새로 생성된 상태 Running 명령어가 들어가는 상태 Waiting 프로세스가 event를 기다리는 상태 (ex. I/O devices) Ready 프로세스가 프로세서..

[OS] 운영체제(Operating System)의 개념과 구조

✨운영체제란? 운영체제는 컴퓨터 사용자와 하드웨어 사이에서 중개자(intermediary) 역할을 한다. 운영체제의 목적은 사용자가 프로그램을 편하고 효율적으로 수행할 수 있는 환경과 컴퓨터 하드웨어를 사용하는 효율적인 방식을 제공하는 것이다. 컴퓨터 시스템은 크게 네 가지로 구분된다. 하드웨어 운영체제 응용 프로그램 사용자 하드웨어 CPU(중앙처리장치), 메모리, I/O (입출력 장치)로 구성되어 기본 계산용 자원을 제공 응용 프로그램 워드 프로세서, 스프레드 시트, 컴파일러 등 이들 자원이 어떻게 사용될지 결정 운영체제 운영체제는 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정할 수 있도록 환경을 제공 운영체제는 컴퓨터 시스템이 동작할 때 이들 자원을 적절하게 사용할 수..

[네트워크] DNS(Domain Name System)란?

DNS(Domain Name System)란? DNS란 사람이 읽을 수 있는 도메인 이름을 IP 주소로 변환해주는 시스템이다. 원래는 네트워크 상 서버들은 IP주소로 서버를 식별한다. 그런데 사용자가 202.179.177.21이라는 IP 주소를 외울 순 없잖음? 그래서 나온게 www.naver.com같은 도메인 주소이다. 이렇게 도메인 주소를 IP 주소로 변환하고 해당 IP 주소로 접속하는 과정을 해주는 시스템을 DNS라고 하며, 네트워크 Application 계층에서 동작하는 서비스이다. 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 '권한'을 부여하는데 DNS는 이처럼 상위 기관과 하위 기관과 같은 '계층 구조'를 가지는 분산 데이터베이스 구조를 가진다. DNS 구성 ..

[네트워크] OSI 7계층과 TCP/IP모델

OSI 7계층 OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7개의 계층으로 나누어 각 계층 간의 인터페이스를 정의한 네트워크 표준이다. 과거에는 통신용 규약이 표준화되지 않았고 별도로 개발했기 때문에 호환되지 않는 시스템이나 애플리케이션이 많아 통신이 불가능했다. 이를 하나의 규약으로 통합하려는 노력이 현재의 OSI 7계층임 OSI 7계층이 네트워크 동작을 나누어 이해하고 개발하는데에 많은 도움이 되므로 네트워크의 주요 레퍼런스 모델로 활용되고는 있는데 현재는 대부분의 프로토콜이 TCP/IP 프로토콜 스택으로 남아있다. TCP/IP 모델 현재는 OSI 모델이 아닌 TCP/IP 모델을 사용한다. OSI 모델이 TCP/IP 모델과의 시장 점유 싸움에서 졌기 때문임 OSI 모델 → TCP/IP 기존 모..

[네트워크] SSL/TLS란? (+핸드쉐이킹 과정)

정의 HTTPS에서 클라이언트와 서버간 통신 전 SSL 인증서로 신뢰성 여부를 판단하기 위해 연결하는 방식 1. HTTP와 HTTPS HTTP (HyperText Transfer Protocol) 인터넷에서 데이터를 주고받기 위한 통신규약 HTTP는 정보를 텍스트 기반의 평문으로 주고받기 때문에 네트워크에서 정보를 탈취하거나 변조할 수 있는 보안 취약점이 존재함 그래서 나온게 HTTPS HTTPS (HyperText Transfer Protocol + Secure socket layer) 기본적인 사항은 HTTP와 거의 동일 HTTP 메시지에 포함되는 콘텐츠 정보에 암호화를 추가함 모든 요청과 응답 데이터는 네트워크로 보내지기 전 SSL 계층을 통해 암호화됨 HTTPS는 클라이언트와 서버간의 통신을 제 ..

[네트워크] Circuit/Packet Switching 이란?

네트워크 상에서 데이터를 주고 받는 전달 방식이다. 스위칭 라우터가 경로를 지정하는 방법 라우터가 패킷을 처리할 때 크게 두 가지 작업을 수행함 경로 정보를 얻어 경로 정보 처리 정리된 경로 정보를 기반으로 패킷을 포워딩 포워딩 : 들어온 패킷의 헤더 정보를 이용하여 패킷 경로를 지정해 내보내는 작업 Circuit Switching vs Packet Switching Packet Switching 데이터를 패킷(packet)으로 쪼개서 보내는 방식 송신 측에서 모든 메시지를 일정한 크기의 패킷으로 분해해서 전송하고, 수신 측에서 이를 원래의 메시지로 조립하는 것 패킷 패킷에는 번호가 붙어있어서 쪼개서 보내서 무작위로 도착해도 순서를 다시 재구성할 수 있음 이러한 과정에서 패킷은 다음 라우터로 이동하기 위..

컴퓨터의 클라이언트와 서버에 대해 알아보자

일반적으로 웹 서비스는 클라이언트가 서버에게 무언가를 요청(request)하고 서버가 클라이언트의 요청에 응답(Response)하는 방식으로 이루어진다. 클라이언트는 모바일 앱, 사파리, 크롬 등이 될 수 있고 서버는 그냥 컴퓨터라고 이해하면 된다. 컴퓨터가 클라이언트에게 서비스를 제공하면 그걸 서버라고 부른다. 이런 구조를 통칭해 서버-클라이언트 구조라고 한다. 그럼 이 응답과 요청은 어떻게 하는걸까? 그건! url을 이용한다. 여기서 도메인은 우리가 사용할 서버를 찾아주는 역할을 한다. 인터넷에는 Domain Name System이라는것이 있는데.. IP와 이름을 맞춰놓은 리스트 주소록이라고 보면 된다. 인터넷은 모두 ip주소를 가지고 있다. 예를 들어 naver의 ip 주소는 202.131.30.1..