본문 바로가기

반응형

Computer Science

(42)
[OS] Thread & Multithreading 1. Process vs Thread - Process 프로세스는 실행 중인 프로그램을 의미한다. 프로세스에 대한 정보를 가지고 있는 Process Control Block에 의해 운영된다. 프로세스는 child process라고 불리는 다른 프로세스들을 생성할 수 있다. 프로세스는 제거되는데 더 많은 시간이 걸리며, 독립된 자원을 할당받기 때문에 다른 프로세스와 자원을 공유하지 않는다. 프로세스는 new, ready, running, waiting, terminated, suspended의 상태를 가진다. - Thread 스레드는 프로세스의 일부분으로 프로세스에서 동작하는 실행 단위이다. 한 프로세스는 여러 스레드를 가질 수 있다. 스레드는 running, ready, blocked 3개의 상태를 가진..
[OS] Process Synchronization 1. Process Synchronization 동기화를 기준으로 프로세스들은 다음 두가지 종류로 구분된다. - Independent Process: 한 프로세스의 실행이 다른 프로세스의 실행에 영향을 주지 않는 프로세스 - Cooperative Process: 한 프로세스의 실행이 다른 프로세스의 실행에 영향을 주는 프로세스 Cooperative process의 경우 프로세스들이 서로의 작업을 수행할 때 영향을 주기 때문에 하나의 공유 메모리나 다른 프로세스에 접근하는 경우 매우 조심해야 한다. 이러한 프로세스 사이에 동기화를 하는 것을 프로세스 동기화 (Process Synchronization) 이라고 한다. 현재는 대부분 스레드 기준으로 스위칭이 일어나기 때문에 Thread synchronizat..
[OS] CPU scheduling CPU scheduling은 ready queue에 있는 프로세스 중 실행할 프로세스를 선택하는 방식을 의미한다. 각 알고리즘에 따라서 프로세스를 선택하여 ready 상태에 있는 프로세스를 running 상태로 변경한다. 1. Preemptive vs Non-preemptive (선점식 vs 비선점식) - Preemptive: 선점식 스케줄링은 CPU가 이미 어떤 프로세스를 실행하고 있는 중에 이를 중단시키고 새로운 프로세스를 할당하는 방식이다. - Non-preemptive: 비선점식 스케줄링은 CPU가 이미 프로세스를 수행 중인 경우, 프로세스가 끝나거나 IO를 만나게 될 때까지 프로세스 변경을 수행하지 못한다. 2. Scheduling Algorithms - FCFS (First Come First..
[OS] Process Scheduling 1. Process Scheduling 프로세스 스케줄링은 프로세스 매니저가 running process를 CPU에서 제거하고 프로세스 선택 기준, 전략에 따라 다른 프로세스를 선택하는 작업을 의미한다. 프로세스를 스케줄링이 수행되는 queue에는 세가지 종류가 있다. 다음 큐에 있는 프로세스들 중 하나를 선택하여 상태를 변경하는 작업을 수행한다. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 (ready 상태) Device Queue: Device I/O 작업을 대기하고 있는 프로세스의 집합 (waiting 상태) 2. 스케줄러의 종류 - Long-term scheduler or jo..
[OS] Process Management 1. Process Process는 실행 중에 있는 프로그램을 의미한다. 우리가 작성한 소스 파일이나 이를 빌드한 바이너리 코드는 모두 프로그램이다. 이런 프로그램이 실행되면 프로세스가 된다. 프로세스는 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있다. OS로부터 주소 공간, 파일, 메모리 등을 할당 받으며, 이것들을 총칭하여 프로세스라고 한다. 구체적으로 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 heap을 포함한다. 2. 프로세스 메모리 구조 1) Stack 프로그램이 자동으로 사용하는 임시 메모리 영역 지역변수, 매개변수, 리턴 값 등 잠..
[OS] Operating System (운영체제) 1. OS (Operating System) OS, 운영체제는 사용자와 컴퓨터 하드웨어 사이에서 동작한다. 운영체제의 목적은 컴퓨터를 효율적으로 관리하고 제어하며 작동하는 것이다. 운영 체제는 사용자와 컴퓨터 하드웨어 간의 인터페이스 역할과 응용 프로그램의 실행 및 제어를 하기 위해 만들어진 시스템 소프트웨어를 의미한다. 다른 의미로는 항상 컴퓨터에서 실행되는 프로그램을 의미하기도 한다. (kernel) 운영 체제는 사용자와 하드웨어 간의 인터페이스 역할을 하는데 입출력과 메모리 할당과 같은 하드웨어 기능에 대해서 응용 프로그램과 하드웨어 사이의 중재 역할을 하여 자원 할당 및 프로그램들의 실행을 제어한다. 컴퓨터 전체를 관리 및 제어하기 때문에 컴퓨터를 사용하기 위해서 먼저 설치해야하는 기본 소프트웨어..
[Network] Browser 통신 과정 1. 브라우저 브라우저는 사용자가 선택한 자원을 서버에 요청하고 이를 부라우저에 표시하는 역할을 한다. 자원은 보통 HTML 문서지만, PDF나 다른 형태일 수도 있다. 자원의 주소는 URI (Uniform Resource Identifier)에 의해 정해진다. 브라우저는 웹 표준화 기구인 W3C에서 정한 HTML과 CSS 명세에 따라 HTML 파일을 해석하여 표시한다. 브라우저의 기본 구조 - 사용자 인터페이스: 주소 표시줄, 이전/다음 버튼, 북마크 메뉴 등 요청한 페이지를 보여주는 창을 제외한 나머지 부분 - 브라우저 엔진: 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어 - 렌더링 엔진: 요청한 콘텐츠를 표시. HTML을 요청 시, HTML과 CSS를 파싱하여 화면에 표시 - 통신: HTTP ..
[Network] HTTP (Hyper text transfer protocol) 1. HTTP HTTP (Hyper text transfer protocol) 는 인터넷 상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 전송 프로토콜이다. TCP와 UDP를 사용하며 기본 포트는 80번을 사용한다. ※ Protocol 프로토콜은 컴퓨터가 네트워크 내에서 어떤 방식으로 통신해야하는지 정한 규칙의 집합이다. (ftp, telnet, http, smtp, dhcp 등등) 2. Connectionless & Stateless - Connectionless • 서버에 연결하고 요청해서 응답을 받으면 연결을 끊어버린다. • HTTP 통신에서 클라리언트가 request를 서버에 보내고 서버가 클라이언트에게 response를 보내면 연결을 끊는다. • 동시사용자들의 접속유지를 최소한으로 ..

반응형