목록컴퓨터공학 (8)
나의 개발일기
TCP (Transmission Control Protocol) 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 프로세스 상호 간에 신뢰적인 연결지향성 서비스를 제공 TCP/IP 모델 인터넷 통신을 위한 모델, 사실상 업계 표준 IP (Internet Protocol) 통신 자료를 최종적으로 전달하기 위해 필요한 송/수신 위치 정보 보통 IPv4의 주소를 사용하며 주소 부족으로 인해 IPv6가 개발됨 패킷 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록 패킷은 네트워크를 통해 일정한 순서 없이 보내지며 어떤 경로를 통해 이동될지는 네트워크의 상황에 따라 다르다. 특징 연결형 서비스로 가상 회선 방식을 제공 데이터의 전송 순서 보장 데이터의 경계를 구분하지 않음 신뢰성 있..
OSI OSI 모델이란? 개방형 시스템 상호 연결(Open Systmes Interconnection Reference) OSI 모델은 다양한 통신 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제 표준화 기구가 만든 개념 모델 OSI는 다양한 컴퓨터 시스템의 상호 통신을 가능하게 하도록 하는 표준을 평이한 영어로 제공 OSI 모델은 컴퓨터 네트워킹을 보편적인 언어로 생각할 수 있음 이 모델은 통신 시스템을 7개의 추상적 계층으로 나누고 각각의 계층이 다른 계층 위에 얹히는 개념에 기초 OSI 7 계층 PHYSICAL LAYER(물리적 계층) Transmits raw bit stream over the physical medium 이 계층은 케이블, 스위치 등 데이터 전송과 관련된 물리적 장치를 ..
가상 메모리 (Virtual Memory System) 메모리가 실제 메모리보다 많아 보이게 하는 기술 프로세스 간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음 가상 메모리 기본 아이디어 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 테이터를 읽고/쓸 때만 물리 주소라 바꿔 주면 된다. virtual address (가상 주소) : 프로세스가 참조하는 주소 physical address (물리 주소) : 실제 메모리 주소 MMU (Memory Management Unit) CPU에 코드실행 시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치 가상 메모리가 필요한 이유 여러 프로세스 동시 실행 시스템 하나의 프로세스만 실행 가능..
Thread (스레드) - 비동기 처리 Light Weight Process라고도 함 - 리눅스 프로세스 프로세스 간에는 각 프로세스의 데이터 접근이 불가 스레드 하나의 프로세스에 여러 개의 스레드 생성 가능 스레드들은 동시에 실행 가능 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능 멀티 스레드 : 성능 개선 위해 기본적으로 고려하는 구조 Thread는 각기 실행이 가능한 stack 존재 Multi Thread (멀티 스레드) 소프트웨어 병행 작업 처리를 위해 Multi Thread를 사용함 최근에는 짧은 반응 시간이 우선이기 때문에, 성능 개선에 신경을 많이 씀 멀티 프로세스 또는 멀티 스레드를 고려함 멀티 프로세스보다 스레드를 자연스럽게 더 많이 사용함 멀티 프로세스는 처음 구조를 잡을..
프로세스 구조 프로세스 (process)는 일반적인 구성 text(CODE) : 코드 data : 변수/ 초기화된 데이터 stack : 임시 데이터 (함수 호출, 로컬 변수 등) heap : 코드에서 동적으로 만들어지는 데이터 컨텍스트 스위칭(Context Switching) CPU에 실행할 프로세스를 교체하는 기술 PC (Program Counter) : 다음 실행할 코드 주소 SP (Stack Pointer) : 스택 최상단 주소 PC, SP만 바꿔주면, 프로세스 저장상태를 기반으로 실행 가능 PCB (Process Control Block) - 프로세스 제어 블록 PCB에 다음 프로세스 정보를 저장 Process ID, Register (PC, SP 등) 등 프로세스가 실행 중인 상태를 캡처/구조화..
스케쥴링 알고리즘 어느 순서대로 프로세스를 실행할까? 목표에 따른 분류 시분할 시스템 : 프로세스 응답 시간을 가능한 짧게 멀티프로그래밍 : CPU 활용도를 최대한 높여서, 프로세스를 빨리 실행 FIFO스케줄러 (First In First Out) CPU를 처음부터 끝까지 사용 가장 간단한 스케쥴러 ( 배치 처리 시스템) 먼저 들어온 것부터 실행 최단 작업 우선(SJF) 스케쥴러 SJF(Shortest Job First) 스케쥴러 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행시키는 알고리즘 우선순위 기반 스케쥴러 Priority-Based 스케쥴러 정적 우선순위 프로세스마다 우선순위를 미리 지정 동적 우선순위 스케쥴러가 상황에 따라 우선순위를 동적으로 변경 Round Robin 스케쥴러 프로세스 ..