Oneulog

1. 스레드 스레드는 프로세스를 구성하는 실행 흐름의 단위이다. 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. (1) 단일 스레드 프로세스 단일 스레드 프로세스는 실행 흐름이 하나인 프로세스를 말한다. 이제까지의 프로세스는 모두 단일 프로세스에 대한 이야기이다. (2) 멀티 스레드 프로세스 멀티 스레드 프로세스는 실행 흐름이 여러 개인 프로세스로써 프로세스를 이루는 여러 명령어를 동시에 실행할 수 있다. (2) 스레드의 구성 요소 스레드는 스레드ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 스레드마다 실행에 필요한 최소한의 정보를 가지고 있다. 각 스레드의 스택이 따로 있고 각 스레드의 프로그램 카운터가 따로 있어, 스레드마다 서로 각기 다른 프로그램에 있는 부분을 실행하면서 각기 다른..
프로세스 : 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업(Task)이라는 용어와 거의 같은 의미로 쓰인다. 스레드 : 프로세스 내 작업의 흐름을 지칭 위의 그림처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 1. 프로세스와 컴파일 과정 프로세스는 프로그램이 메모리에 올라가 인스턴스화된 것을 말한다. 예를 들어 프로그램은 구글 크롬 프로그램(chrome.exe)과 같은 실행 파일이며, 이를 두 번 클릭하면 구글 크롬 프로세스로 변환되는 것이다. 프로그램을 만드는 과정은 만드는 언어마다 다를 수 있으며 컴파일 언어인 C 언어 기반의 프로그램을 기준으로 설명하면 컴파일러가 컴파일 과..
동기와 비동기의 차이는 프로그램의 흐름 제어와 관련이 있다. 동기 방식은 I/O 작업이 완료될 때까지 프로그램의 흐름이 멈추지만, 비동기 방식은 I/O 작업을 백그라운드에서 진행하면서 메인 프로그램의 흐름을 계속 진행한다. 이처럼 동기 I/O는 요청한 작업이 완료될 때까지 기다리는 반면, 비동기 I/O는 요청한 작업이 처리되는 동안 다른 작업을 계속해서 수행한다. 동기 I/O 동기 I/O는 프로그램이 I/O 작업을 요청하고, 해당 작업이 완료될 때까지 기다리는 방식이다. 데이터의 입/출력 작업이 진행되는 동안 프로그램은 다른 작업을 진행하지 않고 기다린다. 가장 간단하고 직관적이지만, I/O 작업이 오래 걸리는 경우 프로그램의 효율성이 크게 저하될 수 있다. 비동기 I/O 비동기 I/O는 프로그램이 I/..
기본적인 입출력 제어 방식 메모리에서 데이터를 꺼낸 후 시스템 버스를 통해 CPU 레지스터에 옮겨지고 다시 시스템 버스를 통해 다시 시스템 버스를 통해 CPU 레지스터에서 메모리로 이동한다. 이처럼 모든 메모리 접근 연산이 CPU에 의해서만 이루어질 경우 주변 장치가 메모리 접근을 원할 때마다 인터럽트를 통해 CPU의 작업이 방해받게 되어 사용 효율성이 떨어진다. DMA 메모리 버퍼, 포인터, 카운터를 사용해 장치 제어기가 CPU의 도움없이 DMA 컨트롤러를 이용해 데이터를 직접 메모리로 전송하는 입출력 방식을 말한다. DMA의 필요성 고속의 I/O 장치의 경우 인터럽트로 CPU의 실제 프로세스 작업 시간 감소 디스크 같은 많은 데이터를 입/출력하는 장치를 위해 CPU가 매번 전송을 제어하는 방법의 비효..
1. 폴링(Polling) 폴링이란 CPU가 작업을 진행하면서 입출력 명령을 만나면 직접 입출력 장치에서 데이터를 가져오는 방식이다. CPU가 직접 일을 작업을 하기 때문에 입출력을 하는 동안 다른 작업은 할 수 없다. 따라서 입출력이 처리되는 동안 기다려야 하는데 시간이 오래 걸리며 작업 효율이 떨어져 현재는 사용하지 않는다. 2. 인터럽트(Interrupt) 인터럽트는 프로그램을 실행하는 도중에 예기치 못한 상황이 발생할 경우 CPU를 잠깐 정지시켜 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것을 말한다. 인터럽트가 발생되면 인터럽트 핸들러 함수가 모여 있는 인터럽트 벡터로 가서 인터럽트 핸들러 함수가 실행된다. 인터럽트 간에는 우선 순위가 있고..
1. 동시 작업 지원 여부에 따른 분류 운영체제는 동시 작업을 지원하는지의 여부에 따라 단일작업(Single Tasking) 운영체제와 다중작업(Multi Tasking) 운영체제로 나뉜다. (1) 단일작업(Single Tasking) 운영체제 한 번에 하나의 프로그램만 실행시킬 수 있는 운영체제이다. 도스 환경이 이에 속한다. (2) 다중 작업(Multi Tasking) 운영체제 하나의 프로그램이 끝나기 전에 다른 프로그램을 실행시키는 것이 가능한 운영체제이다. MS 윈도우나 유닉스가 이에 속한다. 운영체제가 다중 작업을 처리할 때 여러 프로그램이 CPU와 메모리를 공유하게 되는데, 비록 CPU가 하나밖에 없어 매 순간 하나의 프로그램만 CPU에서 실행되지만 CPU의 처리 속도가 매우 빨라 수밀리초(m..
0. 운영체제란? 운영체제는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 1. 운영체제의 역할과 구조 (1) 운영체제의 역할 CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리 디스크 파일 관리 : 디스크 파일을 어떤 방법으로 보관할지 관리 I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리 (2) 운영체제의 구조 유저 프로그램이 맨 위에 있고 그 다음으로 GUI, 시스템콜, 커널, 드라이버가 있으며 가장 밑에 하드웨어가 있는 구조이다. 이 중 GUI, 인터페이스, 커널, 드라이버 부분이 운..
NLP Developer
'CS' 카테고리의 글 목록 (2 Page)