본문 바로가기

CS

(53)
시스템 콜(System Call)이 뭐야? 시스템 호출이 책에도 써있듯이 올바른 말이지만 시스템 콜이 익숙하기에 시스템 콜로 하겠습니다. 시스템 콜(system call)은 실행 중인 프로그램과 운영체제 간의 인터페이스로, API라고도 한다. 사용자 프로그램은 시스템 콜(System call)을 하여 운영체제의 기능을 제공받는다. 운영체제의 커널모드? 사용자 모드? 1. 커널 모드 프로그램 카운터가 운영체제가 존재하는 부분을 가리키고 있다면, 1) 현재 운영체제의 코드를 수행 중이며 2) CPU가 커널 모드에서 수행 중이라고 한다. 2. 사용자 모드 프로그램 카운터가 사용자 프로그램이 존재하는 메모리 위치를 가리킬 경우, 1) 사용자 프로그램을 수행 중이며 2) CPU가 사용자 모드에서 수행 중이라고 한다. 일반 명령 : 메모리에서 자료를 읽어와..
웹사이트에 접속할 때 일어나는 상황에 대해서 웹사이트에 접속할 때 일어나는 과정과 상세한 내용을 알아보자! 동작과정 사용자가 브라우저에 도메인 네임(ex. naver.com, google.com 등)을 입력한다. 사용자가 입력한 URL 주소 중에서 도메인 네임(Domain Name) 부분을 DNS 서버에서 검색을 하고, DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달한다. 상세 설명 DNS Query를 DNS 서버에 전송한다. Root Name Server에 입력한 URL을 물어보고 Root Name Server는 .com Name Server의 IP주소를 알려준다. 그후 .com Name Server에 URL을 물어보고, Name Server의 IP 주소를 받고 그곳에 물어본다. 해당 URL..
쿠키(Cookie) & 세션(Session)의 차이에 대해서 알아보자! 쿠키(Cookie)와 세션(Session)은 HTTP 프로토콜의 특징이자 약점을 보완하기 위해 사용한다! HTTP 특징 1. 비연결 지향(Connectionless) 클라이언트가 요청(request)를 서버에 보내고, 서버가 클라이언트에게 응답(response)를 보내면 바로 연결을 끊는다. HTTP 버전에 따라서 다르다 (1.1버전에서는 요청(request)에 재활용하는 기능이 추가 되었다.) 2. 상태 정보를 유지하지 않는다.(Stateless) 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나고, 상태 정보를 유지하지 않는다. 클라이언트와 첫 번째 통신에서 데이터를 주고받았다 해도, 두 번째 통신에서 이전 데이터를 유지하지 않는다. 정보를 유지하지 않는다는 예는 매번 페이지를 이동할 때마다 로그인을..
동기(Synchronous) & 비동기(Asynchronous)의 차이점? 동기와 비동기에 대해서 알아보자! 동기 (Synchronous) 동시에 일어난다는 뜻 요청과 그 결과가 동시에 일어남 시간이 얼마가 걸리던 요청한 자리에서 결과가 주어져야 함 요청을 보낸 후 응답(결과)을 받아야지만 다음 동작이 이루어 진다. 실제 CPU가 느려지는 것은 아니지만, 시스템의 전체적인 효율이 저하 된다. System Call이 끝날때 까지 기다리고 결과물을 가져온다. 비동기 (Asynchronous) 동시에 일어나지 않는다는 뜻 요청과 결과가 동시에 일어나지 않음 요청한 자리에서 결과가 주어지지 않음 요청을 보낸 후 응답(결과)와는 상관 없이 다음 방식이 동작하는 방식이다. 결과가 주어지는데 시간이 걸리더라도, 그 시간동안 다른 작업을 할수 있다 이로 인해 자원을 효율적으로 사용이 가능하다..
SQL? No SQL? 둘의 차이? SQL(Structed Query Language)이란? 구조적 질의 언어의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어이다. SQL을 사용시, RDBMS에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 관계형 데이터베이스(RDBMS)의 특징 데이터는 정해진 데이터 스키마에 따라 테이블에 저장 데이터는 관계를 통해 여러 테이블에 분산 데이터는 테이블 레코드에 저장이 되는데, 각 테이블마다 명확하게 정의된 구조가 있다. 따라서 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 즉 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 RDBMS의 특징이다. 중복을 피하기 위해 관계(Relation)을 사용한다. 하나의..
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의 문제점 암호화 기능이 없다 단순 텍스트 형식으로 주고 받기 때문에, 중간에서 누군가가 가로챈다면 내용이 ..