프로세스 동기화 동기화 ★ 다중 프로그래밍 시스템 여러 개의 프로세스들이 존재 프로세스들은 서로 독립적으로 동작 공유 자원 또는 데이터가 있을 때, 문제 발생 가능 ★ 동기화 프로세스들이 서로 동작을 맞추는 것 프로세스들이 서로 정보를 공유하는 것 Asynchronous and Concurrent P’s ★ 비동기적 프로세스들이 서로에 대해 모름 ★ 병행적 여러 개의 프로세스들이 동시에 시스템에 존재 ★ 병행 수행중인 비동기적 프로세스들이 공유 자원에 동시 접근 할 때 문제가 발생할 수 있음 Terminologies ★ Shared data (공유 데이터) or Critical Data 여러 프로세스들이 공유하는 데이터 ★ Critical section (임계 영역) 공유 데이터를 접근하는 코드 영역(c..
Git 1. Git이란? ‘분산 버전관리 시스템'으로, 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 파일에 대한 작업을 조율하는데 사용된다. 즉, 주로 여러명의 개발자가 하나의 소프트웨어 개발 프로젝트에 참여할 때, 소스 코드를 관리하는데 주로 사용된다. 2. Git 기본 용어 1) repository : 프로젝트의 모든 파일, 폴더 및 관련 이력을 저장하는 곳이다. 이러한 저장소에는 프로젝트의 모든 버전 제어 및 변경 이력이 포함된다. 일반적으로 프로젝트의 Git 저장소에는 다음과 같은 요소가 포함된다. (1) 버전 관리된 파일 : 프로젝트의 모든 파일 및 폴더 (2) history : 파일의 변경 이력이 기록된다. 이로써 이전 상태로 롤백하거나 특정 시점의 코드를 검토할 수 있다. (3)..
프로세스 스케줄링 다중 프로그래밍 (Multi-programming) ★ 여러 개의 프로세스가 시스템 내 존재 ★ 자원을 할당할 프로세스를 선택해야 함 스케줄링(Scheduling) ★ 자원 관리 시간 분할 (time sharing) 관리 ✓ 하나의 자원을 여러 스레드들이 번갈아 가며 사용 ✓ 예) 프로세서 (Processor) ✓ 프로세스 스케줄링 (Process scheduling) ✓ 프로세서 사용시간을 프로세스들에게 분배 공간 분할 (space sharing) 관리 ✓ 하나의 자원을 분할하여 동시에 사용 ✓ 예) 메모리 (memory) 스케줄링의 목적 ★ 시스템의 성능(performance) 향상 ★ 대표적 시스템 성능 지표 (index) 응답시간 (response time) → interacti..
스레드 관리 (Thread Management) 스레드의 개념 프로세스(Process)와 스레드(Thread) 한 프로세스 안에 스레드는 여러 개 있을 수 있다. 자원은 공유를 하지만, 각각의 자신만의 제어요소들을 가지고 있는 것. 스레드 ★ Light Weight Process (LWP) ★ 프로세서(e.g, CPU) 활용의 기본 단위 ★ 구성요소 Thread ID Register set (PC, SP 등) Stack (i.e local data) ★ 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유 ★ 전통적 프로세스 = 단일 스레드 프로세스 스레드의 장점 ★ 사용자 응답성 (Responsiveness) 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속 처리 가능 ..
Process Management Job vs Process ★ 작업 (Job) / 프로그램 (Program) 실행 할 프로그램 + 데이터 컴퓨터 시스템에 실행 요청 전의 상태 ★ 프로세스 (Process) 실행을 위해 시스템(커널)에 등록된 작업 시스템 성능 향상을 위해 커널에 의해 관리 됨 프로세스의 정의 ★ 실행중인 프로그램 커널에 등록되고 커널의 관리하에 있는 작업 각종 자원들을 요청하고 할당 받을 수 있는 개체 프로세스 관리 블록(PCB)을 할당 받은 개체 능동적인 개체(active entity) ✓ 실행 중에 각종 자원을 요구, 할당, 반납하며 진행 ★ Process Control Block (PCB) 커널 공간 (kernal space) 내에 존재 각 프로세스들에 대한 정보를 관리 프로세스의..
네트워크 기본 - IP주소, PORT, DNS, URL, URI 1. IP주소 1) IP란? IP(Internet Protocol)는 인터넷을 통해 데이터를 주고받을 때 사용되는 통신 규약으로서 OSI 7계층중 LAYER 3에 위치하는 프로토콜이다. IP는 데이터를 패킷 단위로 나누어 전송하고, 받는 쪽에서는 그 패킷들을 다시 조립하여 원래의 데이터로 변환하는 과정을 거친다. IP를 통해 전송되는 데이터는 인터넷 상의 다양한 기기들과 통신할 수 있다. 2) IP주소란? - 인터넷에 연결된 각각의 기기를 구별하기 위해 사용되는 고유한 번호이다. IP주소는 네트워크 내에서 특정 기기를 찾아 데이터를 전송할 수 있도록 도와주며, 기기들이 서로 통신할 때 필수적인 요소이다. IP주소는 IPv4와 IPv6의 두 ..
운영체제의 역할 ★ User Interface (편리성) CUI (Character User Interface) GUI (Graphical User Interface) EUCI (End-User Comfortable Interface) ★ Resource management (효율성) HW resource (processor, memory, I/O devices, Etc.) SW resource (file, application, message, signal, Etc.) ★ Process(실행주체) and Thread management ★ System management (시스템 보호) 컴퓨터 시스템의 구성 운영체제의 구분 ★ 동시 사용자 수 Single-user system Multi-user sys..
컴퓨터 시스템 개요 운영체제 → 하드웨어(컴퓨팅 자원)를 효율적으로 관리해서 사용자에게 서비스를 제공하는 소프트웨어 컴퓨터 하드웨어 프로세서 - CPU, GPU, 응용 전용 처리장치 등 메모리 - 주 기억장치, 보조 기억장치 등 주변장치 - 키보드/마우스, 모니터, 프린터, 네트워크 모뎀 등 프로세서 → 컴퓨터의 두뇌 (중앙처리장치) 연산 수행 컴퓨터의 모든 장치의 동작 제어 레지스터 → 프로세서 내부에 있는 메모리 프로세서가 사용할 데이터 저장 컴퓨터에서 가장 빠른 메모리 레지스터의 종류 용도에 따른 분류 - 전용 레지스터, 범용 레지스터 사용자가 정보 변경 가능 여부에 따른 분류 - 사용자 가시 레지스터, 사용자 불가시 레지스터 저장하는 정보의 종류에 따른 분류 - 데이터 레지스터, 주소 레지스터, ..
