컴퓨터가 이해하는 정보 단위 - 데이터 컴퓨터는 0과 1로 모든 정보를 표현하고, 0과 1로 표현된 정보만을 이해할 수 있다. 그리고 이렇게 0과 1로 표현되는 정보에는 크게 데이터(data)와 명령어(instruction)가 있다. 데이터 컴퓨터가 이해하는 숫자,
컴퓨터는 0과 1로 모든 정보를 표현하고, 0과 1로 표현된 정보만을 이해할 수 있다.그리고 이렇게 0과 1로 표현되는 정보에는 크게 데이터(data)와 명령어(instruction)가 있다.명령어(instruction)명령어는 데이터를 움직이고 컴퓨터를 작동시키는 정
실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램이다.데스트톱 운영체제 ➡ 윈도우, macOS, Linux 등스마트폰 운영체제 ➡ 안드로이드, IOS 등운영체제에서 작동하는 응용 프로그램을 관리하는 기능으로 현재 CPU를 점유해야할
1.다중 처리기 시스템 다중 처리기 시스템이란 > 다중 처리기 시스템(Multiprocessor Systems)란 2대 이상의 CPU를 두고 각각 그 업무를 분담하여 처리하는 방식이다. https://www.tutorialspoint.com/Multiprocesso
프로그램 속 명령어들은 일정한 주기가 반복되며 실행되는데 이 주기를 명령어 사이클이라고 한다.인출 사이클(fetch cycle) : 메모리에 있는 명령어를 CPU로 가지고 오는 단계실행 사이클(execution cycle) : CPU로 가져온 명령어를 실행하는 단계간접
Blocking I/O란 유저 프로세스가 I/O작업을 호출했을때, I/O작업이 진행되는 동안 자신의 작업을 중단하고 I/O작업이 끝나기 까지 대기하는 방식이다.<이미지 출처>https://www.linkedin.com/pulse/java-sockets-i
프로그램과 프로세스 > 프로그램 : 컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음 프로세스 :
스레드 > 스레드(thread) : 프로세스를 구성하는 실행 흐름의 단위 하나의 프로세스는 하나 이상의 스레드를 가질 수 있음 단일 스레드 프로세스 : 실행 흐름이 하나인 프로세스 멀티 스레드 프로세스 : 실행 흐름이 여러 개인 프로세스 (프로세스를 이루는 여러 명령
프로세스끼리는 기본적으로 자원을 공유하지 않지만, 프로세스끼리도 충분히 자원을 공유하고 데이터를 주고 받을 수 있다. 이렇게 프로세스 간의 자원을 공유하고 데이터를 주고받는 것을 프로세스 간 통신(IPC)이라고 한다.프로세스들은 서로 공유하는 메모리 영역을 두어 데이터
CPU 스케줄링 CPU 스케줄링이란? > CPU 스케줄링 (CPU scheduling)이란 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것이다. 프로세스 우선 순위 입출력 집중 프로세스 (I/O bound process) : 입출력 작업이 많
선입 선처리 스케줄링 / FCFS 스케줄링 :준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식선입 선처리 스케줄링은 호위 효과가 발생할 수 있다는 단점이 있다. \- 호위 효과(convoy effect) : 모든 다른 프로세스들이 하나의 긴 프로
동기화 (synchronization) :여러 프로세스/스레드가 동시에 실행해도 공유 데이터의 일관성을 유지하는 것 (== 프로세스/스레드 사이의 수행 시기를 맞추는 것)프로세스/스레드 사이의 수행 시기를 맞춘다는 것은?실행 순서 제어 : 프로세스/스레드를 올바른 순서
Mutex (뮤텍스) Semaphores (세마포) Monitor (모니터)
Deadlock (교착 상태) > Deadlock (교착 상태) : 두 개 이상의 프로세스 혹은 스레드가 서로가 가진 리소스를 기다리는 상태 자원 할당 그래프 (Resource-Allocation Graph) 자원 할당 그래프를 보고 데드락의 발생 여부를 판별할
Parallelism (병렬성) 실제로 동시에 작업이 처리되는 것 멀티 프로세서 시스템에서 가능 Concurrency (병행성) 동시에 작업이 실행되는 것 처럼 느끼게 해주는 것 한 개의 CPU가 다수의 프로세스들을 서로 번갈아 가며 수행 ➡ 인터리빙(interl