본문 바로가기

분류 전체보기

(273)
Context Switching(문맥교환)이란? 문맥교환? 먼저 간략하게 PCB를 알고 갑시다. 프로세스가 생성되면 같이 생성되는 블록 상태, 프로세스 넘버, 명령어, 레지스터가 포함되어 있다. Context Switching을 할 때 필요한 정보를 담고 있다. PCB는 왜 필요한거야? CPU에서는 프로세스의 상태에 따라 교체작업이 이루어지는데, 이때 앞으로 다시 수행할 대기중인 프로세스에 관한 저장 값을 PCB에 저장해두는 것이다. 교체작업 intterupt가 발생해서 할당받은 프로세스가 waiting상태가 되고 다른 프로세스를 running으로 바꿔 올릴 때 Context Switching이란? 현재 진행하고 있는 프로세스,스레드의 상태를 저장하고 다음 진행할 태스크의 상태 값을 읽어 적용하는 과정을 말합니다. 왜 Context Switching이..
동기화(Synchronous)와 세마포어(Semaphore)와 뮤텍스(Mutex) 동기화? 한정적인 시스템 자원에 여러 스레드가 동시에 접근해서 사용시 문제가 발생 여러 스레드에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정하는 기법 스레드 동기화 스레드의 실행 순서를 정의 메모리 접근에 있어서 동시 접근을 막음 실행 순서보다는 한 순간 하나의 스레드만 해당 자원에 접근 동기화 기법 유저 모드(User mode)의 동기화 1. 임계 구역 기반의 동기화 열쇠를 얻은 프로세스만 임계 구역에 들어갈 수 있다. 한번에 하나의 스레드만이 접근 임계 구역 진입을 위해 임계 구역 오브젝트(key)를 얻는다. 다른 스레드가 열쇠를 갖고 있을 경우, 열쇠 반환전까지 블로킹(blocking) 열쇠가 반환되면 블로킹 상태에서 빠져나와 열쇠를 얻고 임계구역에 접근 2. 인터락 함수 기반 동기화 함수..
HTTP(HyperText Transfer Protocol) & HTTPS( +Secure) ??! HTTP와 HTTPS S의 차이를 알아보자 HTTP(HyperTextTransfer Protocol) 웹 상에서 클라이언트와 서버가 요청/응답으로 정보를 주고 받을 수 있도록 하는 프로토콜! TCP/IP 기반으로 서버와 클라이언트 간의 요청과 응답을 전송! HTTP의 특징 TCP 기반의 통신 방식 비연결형(Connectionless) 사용자의 요청으로 서버와 접속하여 요청에 대한 응답의 데이터를 전송후 연결을 종료 자원이 적게 드는 장점 무상태(Stateless) 연결을 끊은 후 상태 정보를 유지하지 않는다. 쿠키,세션등을 이용해야 한다. 단방향성 요청 한개에 대해 한개의 응답을 하는 방식 HTTP의 문제점 암호화 기능이 없다 단순 텍스트 형식으로 주고 받기 때문에, 중간에서 누군가가 가로챈다면 내용이 ..
여러가지 KEY 들 Key 검색이나 정렬시 튜플(Tuple)을 구분할 수 있는 기준이 되는 속성(Attribute)이다. Candidate Key(후보키) 기본키가 될 수 있는 키들!! 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 속성들의 부분 집합 기본키로 사용할 수 있는 속성들을 후보키라고 한다. 모든 릴레이션은 반드시 하나 이상의 후보 키를 가져야 한다. 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다. 유일성 : Key로 하나의 Tuple을 유일하게 식별할 수 있음 최소성 : 꼭 필요한 속성으로만 구성 Primary Key(기본키) 후보키들 중 하나! 후보 키 중 선택한 main key 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성(Attribute) Null ..
Multi Process & Multi Thread ??! 멀티 프로세스? 멀티 스레드? 멀티 프로세스 멀티스레드의 차이점 Multi Process(멀티 프로세스) 하나의 프로그램을 여러 프로그램으로 구성하여 각 프로세스가 하나의 작업을 처리한다 이것을 병렬처리라고 한다. 장점 프로세스중 하나에 문제가 발생해도 다른 프로세스에 영향이 없다.(안전성) 단점 Context Switching에서의 비용이 크다. 각 프로세스가 자원을 독립적으로 갖고 있어서 각각 비용을 처리해야 하기 때문이다. IPC를 사용한 통신. 프로세스는 독립적인 메모리 공간으로 변수 공유가 되지 않아 IPC를 사용해 통신을 해야한다. IPC(Inter Process Communication) 프로세스는 독립적(다른 프로세스에게 영향을 받지 않음)으로 실행되며, 독립적 구조를 가진 프로세스 간의 ..
TCP(Transmission Control Protocol) & UDP(User Datagram Protocol)이 뭐야? TCP UDP가 뭐야? 전송계층에서 사용하는, 데이터를 보내기 위해 사용하는 프로토콜입니다. TCP와 UDP는 각각 가상 회선 방식과 데이터그램 방식이라는 점에서 차이를 가지며, 신뢰성과 연속성 두 측면에서 상충관계(trade off)에 있습니다. 자 무슨말인지 정확히 잘 모르겠으니 다시 한번 정리를 해봅시다. TCP(Transmission Control Protocol)? 연결형 서비스를 지원하는 전송 계층 프로토콜로, 인터넷 환경에서 기본으로 사용합니다. 호스트간 신뢰성 있는 데이터 전달과 흐름제어를 합니다. 즉, 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다. TCP 특징 연결형 서비스로 가상 회선 방식을 제공합니다. 데이터의 경계를 구분하지 않는다. 데이터의..
가상환경(Virtual Environments)이란? 파이썬? 가상환경? 이게 뭐야? 조금만..알아보자 4가지가 존재하는지도 몰랐다. 가상 환경(Virtual Environment)? 가상 환경은 독립적인 파이썬 실행 환경을 의미합니다. 각각의 가상 환경은 다른 황경에 영향을 미치지 않으며 각자 다른 종류와 버전의 패키지를 가질 수 있습니다. 가상 환경은 왜 필요한가? 프로젝트를 배포하면서 원격 서버에 따로 패키지를 설치해 줘야 하는데, 이 프로젝트가 사용한 패키지가 무엇인지 모른다. 내가 프로젝트를 할 때 사용했던 버전과 배포시 사용할 버전이 정확히 일치하는지 모른다. 시간이 지남에 따라 패키지가 업데이트 되는데, 서로 의존적인 패키지들 사이에 버전이 맞지 않을 수 있다. 등등...이 존재하게 된다. 가상환경의 종류를 알아보자 1. venv 초심자들에게 ..
OSI 7 Layer OSI 7 Layer 작동 원리 OSI 7계층은 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층으로 나눠져 있습니다. 전송시 7계층에서 1계층으로 각각의 층마다 인식할 수 있는 헤더를 붙여서 내려오게 됩니다. 수신 시 1계층에서 7계층으로 올라갈 때 마다 헤더를 떼어 내면서 올립니다. 출발지에서 데이터가 전송될 때 헤더가 추가 되는데 2계층에서만 오류제어를 위해 꼬리부분에 추가가 됩니다. 물리계층에서 1,0 의 신호가 되어 전송매체를 통해 전송됩니다. 상위 계층부터 내려가면서 설명하겠습니다. 7. 응용계층(Application Layer) 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다. 6. 표현 계층(P..