분류 전체보기
-
(9) 데드락 ( Dead lock)CS 지식/○ OS(Operating System) 2021. 6. 23. 19:11
1. 데드락이란? 1-1) 정의 프로세스가 자원을 얻지 못해서 다음을 처리하기 못하는 상태, 교착 상태 - 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 1-2) 데드락의 원인 > 서로 원하는 자원 P1 : R1 소비 중, R2 원함 P2 : R2 소비중, R1 원함 → 서로 원하는 자원을 가지고 있기 때문에 영원히 wait상태에 빠지는 것 2. 데드락 발생 조건 ※ 주 발생 경우 멀티프로세스 환경에서 한전된 자원을 얻기 위해 서로 경쟁하는 상황에서 한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사용할 수 없는 경우 wait 상태로 전환 wait 상태의 프로세스들이 실행 상태로 변경될 수 없을 때 주로 발생 > 다음의 4가지 조건이 모두 성립해야 dead-lock 일어날 수 있음 ..
-
(9) HTTP - HTTP API 만들기/설계HTTP 웹/Http 웹 기본 2021. 6. 22. 21:42
1. API 만들기 example) 회원 정보 관리 API 만들기 ※ CRUD and GPPD Create = PUT with a new URI POST to a base URI returning a newly created URI Read = GET Update = PUT with an existing URI Delete = DELETE 1-1) 요구사항 회원 목록 조회 회원 조회 회원 수정 회원 삭제 1-2) URI 설계 > 안좋은 예시 ( 리소스 식별과 행위가 같이 URI안에 명시되어 있음 ) 1-3) URI 설계 좋은 예시 > 리소스를 기준으로 작성 (a) 리소스의 의미 - 회원을 등록하고 수정하는 것이 아닌 회원이라는 개념 자체가 리소스 (b) 리소스를 식별하는 방법 - 회원을 등록하고 수정하고..
-
(8) HTTP - HTTP 메세지HTTP 웹/Http 웹 기본 2021. 6. 21. 23:38
1. HTTP 메시지 모든 것을 전송 1-1) 정의 Hyper Text Transmission Protocol "말 그대로 text"의 의미 요즘은 범위가 늘어나서 거의 모든 영역에서 HTTP 전송을 사용 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML 거의 모든 형태의 데이터 전송 가능 서버간의 데이터 주고 받을 때도 HTTP사용 지금은 HTTP 시대! 2. HTTP 메세지 구조 > HTTP 요청 / 응답 메세지로 구분 ※ empty line CRLF는 엔터와 비슷(반드시 있어야 함) ※ 요청 메세지의 body도 내용이 있을 수 있음 2-1) HTTP 요청 ※ message body는 없을 수도 있음 (a) 시작 라인 start-line = request-line / status-..
-
(8) CPU SchedulingCS 지식/○ OS(Operating System) 2021. 6. 21. 04:01
1. CPU 스케줄링이란? 1-1) 정의 CPU를 잘 사용하기 위한 프로세스 우선순위 배정 최고의 성능을 내기 위해 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것을 CPU스케줄링이라고 함 1-2) 좋은 스케줄링 조건 1) 오버헤드 ↓ 2) 사용율(CPU를 최대로 바쁘게) ↑ 3) 기아 현상(starvation) ↓ 1-3) 스케줄링의 필요성 (a) 프로세스의 생명주기 [프로세스 생명주기 설명▼] 더보기 프로세스의 상태 전이 ✓ 승인 (Admitted) : 프로세스 생성이 가능하여 승인됨. ✓ 스케줄러 디스패치 (Scheduler Dispatch) : 준비 상태에 있는 프로세스 중 하나를 선택하여 실행시키는 것. ✓ 인터럽트 (Interrupt) : 예외, 입출력, 이벤트 등이 발생하여 현재 ..
-
(7) IPC - Inter Process CommunicationCS 지식/○ OS(Operating System) 2021. 6. 20. 00:29
1. 프로세스의 특징 1-1) 특징 프로세스는 독립적으로 실행 됨 프로그램 실행시 독립적인 메모리 공간을 할당받으며 data, stack, code 가진다. 한 프로세스 안에서는 개별 스레드는 자원을 공유하지만 독립적인 프로세스 간에는 공유할 방식이 없는데, 이를 위해 프로세스간 통신이 가능하도록 하는 것이 IPC 통신이다. 이는 OS의 프로세스 커널이 제공하는 IPC 설비를 이용하여 가능하게 된다. 커널이란? 운영체제의 핵심적인 부분으로 다른 모든 부분에 여러 기본적인 서비스를 제공해줌 컴퓨터 과학에서 커널(kernel)은 컴퓨터의 운영 체제의 핵심이 되는 컴퓨터 프로그램의 하나로, 시스템의 모든 것을 완전히 통제한다.[1] 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제..
-
(7) HTTP - ConnectionlessHTTP 웹/Http 웹 기본 2021. 6. 19. 19:10
1. 연결 / 비연결성 차이 1-1) 연결 유지 모델 > Connection 유지하려고 주기를 가지고 계속 체크하면 서버 자원 소모 ( Client가 놀고 있어도 자원이 소모가 됨 ) 1-2) 비연결 모델 > 요청이 들어올 때만 연결을 유지함 = Connectionless 최소한의 자원으로 서버 유지 가능 (a) 장점 HTTP는 기본이 연결을 유지하지 않는 모델 일반적으로 초단위 이하의 빠른 속도로 응답 - HTTP가 1시간 동안 수천명이 사용하는 서비스여도 실제 서버에서 동시에 처리하는 요청은 수십개 이하 - 웹브라우저에서 클라이언트의 요청을 한번 처리하면(쿼리 + 페이지 rendering) 클라이언트가 그 웹페이지에서 상당시간동안 시간을 보내기 때문에 비연결방식으로 서버 자원을 효율적으로 서비스 할 ..
-
(6) HTTP - StatelessHTTP 웹/Http 웹 기본 2021. 6. 19. 13:19
1. HTTP 무상태 프로토콜 1-1) 정의 aka. Stateless 라고도 함 ( ※ Stateful과 반대 개념 ) 서버가 클라이언트의 상태를 보존, 기억하지 않는 것을 의미 ※ Stateful, Stateless 차이 1) Stateful ※ 서버 장애시 client는 처음부터 다시 수행해야 함(문맥이 유지되어야 하는데 사라졌으므로) 2) Stateless 컨텍스트 / 문맥없어도 사용가능, client는 매번 필요한 정보 모두 보내줌 → 어떤 서버가 와도 client는 동일하게 느끼기 때문에 서버 Scale-Out에 용이 ※ 서버 장애시 client는 다른 서버로 가서 수행 가능(문맥이 없어도 되므로) 3) Stateful, Stateless차이 상태유지 : 중간에 다른 서버로 바뀌면 안됨 - 바..
-
(6) PCB & Context SwitchingCS 지식/○ OS(Operating System) 2021. 6. 16. 14:57
1. Process Management 란? 1-1) 정의 CPU 프로세스가 여러개일 때 CPU 스케쥴링을 통해 프로세스들을 관리하는 것을 말함 이 때, CPU는 정보를 활용하여 프로세스들을 관리하고 이때 사용하는 정보가 Process Metadata ※ Metadata란? 메타데이터(metadata)는 데이터(data)에 대한 데이터이다. 이렇게 흔히들 간단히 정의하지만 엄격하게는, Karen Coyle에 의하면 "어떤 목적을 가지고 만들어진 데이터 (Constructed data with a purpose)"라고도 정의한다. 1-2) Process Metadata Process ID (PID) Process State Process Priority CPU registers Owner CPU usage..
-
(5) System CallCS 지식/○ OS(Operating System) 2021. 6. 15. 21:51
1. System Call 이란? 1-1) 정의 OS가 Application / 사용자에게 제공하는 interface 1-2) 사용 이유 OS가 프로세스 실행, 종료 / I/O 작업 등, 사용자가 함부로 사용하면 안되는 명령어들을 Privileged Instruction으로 분류하고 막아놓았다. 이를 사용하기 위해서 OS가 제공하는 System Call API을 통해 System Call을 이용해야 함 [PI / Kernal mode에서 실행되는 System call의 종류 예시] - 파일 읽어오기, 파일 쓰기, 화면 메세지 출력 등... - fork, wait, exec... 1-3) 수행 과정 1) 프로세스가 System Call을 호출하면 trap(내부 인터럽트)이 발생 - 참조 https://ko..
-
(5) HTTP - 모든 것이 http / Client Server 구조HTTP 웹/Http 웹 기본 2021. 6. 15. 20:00
1. HTTP란? 1-1) 정의 HyperText Transfer Protocol 1-2) 주고 받는 종류 지금은 HTTP 시대 HTML, Text Image, 음성, 영상, 파일 JSON, XML(API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 1-3) HTTP 역사 HTTP 1.1이 제일 중요 기반 프로토콜(Scheme) TCP : HTTP/1.1, HTTP/2 UDP : HTTP/3 ※ 현재는 주로 1.1 버전 사용 1-4) HTTP 특징 클라이언트-서버 구조 무상태 프로토콜(Stateless), 비연결성 HTTP 메세지 단순함, 확장이 매우 용이 2. 클라이언트-서버 구조 2-1) 정의 Request, Response 구조 클라이언트(브라우저 o..