1. 스케줄링의 목적 프로세스 스케줄링이란 여러 개의 프로세스가 시스템 내 존재 자원을 할당할 프로세스를 선택 해야 함 ⇒ 스케줄링 자원 관리 시간 분할 관리 하나의 자원을 여러 스레드들이 번갈아 가며 사용 예) 프로세서 프로세스 스케줄링: 프로세서 사용 시간을 프로세스들에게 분배 공간 분할 관리 하나의 자원을 분할하여 동시에 사용 예) 메모리 스케줄링의 목적 시스템의 성능 향상! 대표적인 시스템 성능의 지표 응답시간: 작업 요청으로부터 응답을 받을 때까지의 시간 → 사용자 대화형 시스템, real-time 시스템에 적합 작업 처리량: 단위 시간 동안 완료된 작업의 수 → 일괄 처리 시스템 자원 활용도: 주어진 시간 동안 자원이 활용된 시간 목적에 맞는 지표를 고려하여 스케줄링 기법을 선택한다. 대기시간..
1. Thread의 정의 프로세스와 스레드 프로세스: 자원을 할당받고 제어하여 원하는 작업을 수행하는 것 스레드란? : 코드, 전역 데이터, 힙으로 구성 : 제어 정보/스택 포인터/지역 데이터/스택을 가지고 있음 하나의 프로세스 내에 여러 개 존재한다. Light Weight Process (LWP: 가벼운 프로세스 / 프로세스의 제어 부분만 가지고 있음) 프로세서 (e.g CPU) 활용의 기본 단위 구성 요소 Thread ID Register set(PC, SP 등) Stack (i.e. local data) 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유 전통적 프로세스 = 단일 스레드 프로세스 스레드의 메모리 공간 스레드의 장점 사용자 응답성(Responsiveness) ..
1. 프로세스의 개념 작업(job) / 프로그램(Program) vs 프로세스 [작업(job) / 프로그램(Program)] 실행 할 프로그램 + 데이터 (우리가 짠 프로그램) 컴퓨터 시스템에 실행 요청 전의 상태 Disk에 보관되어 있음 [프로세스] job이 시스템에 등록된 상태 (메모리를 할당받음) 실행을 위해 시스템(커널)에 등록된 작업 시스템 성능 향상을 위해 커널에 의해 관리 됨 프로세스의 정의 실행중인 프로그램 커널에 등록되고 커널의 관리하에 있는 작업 각종 자원들을 요청하고 할당 받을 수 있는 개체 프로세스 관리 블록 (PCB)을 할당 받은 개체 능동적인 개체(active entity) : 실행 중에 각종 자원을 요구, 할당, 반납하며 진행 PCB(Process Control Block) 커..
1. 웹 서비스 클라이언트 - 서버 모델 웹 (WWW→ World Wide Web) 서버의 TCP 포트 번호 80번으로 지정 URL (Uniform Resource Locator) 웹 서버 지칭 프로토콜, 연결하는 서버의 호스트 이름, 서버 내부의 파일 경로명으로 표현 https://www.korea.co.kr/welcome.html 프로토콜 이름 / 웹 서버 host 이름 / 서버 내부의 파일 경로명 유닉스, 리눅스 시스템에서의 웹 서버 구현 http://www.korea.co.kr/~hong // 로그인 이름 : hong // 홈 디렉토리 : /public_html/index.html 웹 서비스의 동작 원리 사용자가 웹 브라우저에 URL 입력 클라이언트는 서버 호스트 이름을 DNS 서버에 전송하여 서..
사물인터넷이란 ? 각 종 사물에 센서와 통신기술을 이용하여 인터넷에 연결하는 것 사물인터넷 프로토콜 HTTP (Hyper Text Transfer Protocol) CoAP (Constrained Application Protocol) MQTT (Message Queueing Telemetry Transport) HTTP의 기본 동작 HTTP : 서버와 클라이언트 사이의 응용 프로토콜로 클라이언트가 서버에게 정보를 요청 (HTTP Request) 하면 서버는 응답 (HTTP Response) 을 전송하는 구조이다 요청은 URL(Uniform Resource Locator)로 구성되어 서버에게 전달됨 서버는 URL을 분해하여 요청을 처리함 서로 연결할 수 있는 장치 많고 웹 브라우저를 통한 연결 가능 ur..
TCP/UDP 멀티스레드 서버 프로그래밍 서버의 종류 반복 서버 (iterative server) 클라이언트 요청을 하나씩 서비스하는 서버 여러 클라이언트 동시 요청 시 앞의 클라이언트 서비스 종료까지 대기해야 됨 대기 시간이 길어지는 단점 병행 서버 (concurrent server) 반복 서버의 단점 극복 클라이언트들을 동시에 서비스하는 서버 방식 종류 스레드 방식 : 클라이언트 마다 별도의 스레드 사용 → 멀티 스레드 이벤트 구동 방식 : 이벤트가 발생하면 처리하는 방식 TCP 멀티스레드 서버 스레드 : 운영체제에 의해 시간이 배분되고 관리되는 프로그램의 실행 단위 스택, 데이터 메모리 등을 공유 스레드를 생성하고 스레드에게 함수의 실행을 맡기면 사용자의 개입이 필요 없음 메인 스레드는 클라이언트를..
소켓 네트워크 프로그래밍 네트워크 관련 파이썬 표준 모듈 인터넷 : TCP/IP 프로토콜을 사용하여 네트워크를 통해 연결된 장치 사이의 통신임 TCP/IP protocol(Transmission Control Protocol/Internet Protocol) : 컴퓨터 서로 통신하는 경우, 특정 규칙이나 프로토콜을 사용하여 순서대로 데이터를 전송 및 수실할 수 있다. 이때 사용하는 규칙중 하나가 TCP/IP 임. ex: 메일, 컴퓨터 간 파일 전송, 원격 로그인 등 파이썬에서는 TCP/IP 통신을 위한 표준 모듈을 제공 ipaddress 모듈 socket 모듈 네트워크 서비스를 위한 파이썬 표준 모듈 ipaddress: 인터넷 주소 관련 작업 모듈 해당 IP 주소가 유효한지 확인하는 경우에도 사용 IPv..
컴퓨터 시스템과 구조 1. 전체적인 스토리 I/O Device는 host 컴퓨터에 붙어서 host에 입출력하는 역할을 수행한다 Device Controller는 I/O Device를 통해 데이터를 읽거나 쓰면 local buffer에 저장한다 Device Controller가 CPU에 어떠한 정보를 제공할 때에는 Interrupt를 건다 CPU는 매순간 메모리 레지스터에 있는 PC가 가리키고 있는 메모리에 올라와있는 기계어(Instruction) (보통 4Byte)를 하나씩 읽어와서 실행한다 PC는 다음 Instruction 실행할 위치를 가리킨다. 실행 후 += 4Byte 하지만 항상 순차적인 처리는 아님! If문 해당안하거나 Interrupt 발생 시 메모리 주소를 점프하여 Instruction 수행..