Computer Science/OS

    [OS] 프로세스 vs 스레드 총 정리

    프로세스 & 스레드 개념 컴퓨터 운영체제에 대해 입문하게 되면 가장 먼저 배우게 될 개념이 프로세스와 스레드 일 것이다. 결론 부터 말하자면 이 둘을 정의는 다음과 같다. 프로세스(Process) 스레드(Thread) 운영체제로부터 자원을 할당받은 작업의 단위 프로세스가 할당받은 자원을 이용하는 실행의 단위 운영체제(OS)에 대한 기본 배경 지식이 없다면 위의 정의가 무슨 소리인지 이해가 잘 되지 않을 것이다. 그래도 위의 문장에는 나름 설명이 함축되어 잘 정리 되어 있는 셈이다. 일단 프로세스의 작업의 단위 라는 단어와 스레드의 실행 흐름의 단위 라는 단어를 기억해 두고 글을 읽어보자. 프로그램 과 프로세스 정적 프로그램 (Static Program) "프로세스"라는 단어는 낯설겠지만 우리는 "프로그램..

    [OS] 스레드의 개념과 상태 변화 및 구현

    스레드의 개념과 상태 변환 [OS] 프로세스 개념과 상태 변화 및 관리 프로세스(Process)란? 초기에 사용하던 컴퓨터는 프로그램을 한 번에 하나씩 실행했고, 실행 중인 프로그램이 컴퓨터 자원을 독점했다. 반면에 다중 프로그래밍 환경에서는 여러 프로그램을 메모 s-y-130.tistory.com 스레드의 개념 이전 포스팅에서 살펴본 프로세스는 두 가지 특성인 자원과 제어로 구분할 수 있다. 이 중 제어만 분리한 실행 단위를 스레드(thread)라고 하는데, 프로세스 하나는 스레드 한 개 이상으로 나눌 수 있다. 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 프로세스 관리 정보를 공유한다. 위 그림과 같이 프로그램 카운터(PC)와 스택 포인터(SP)등을 비롯한 스레드 '실행 환경 정보(문맥 정보..

    [OS] 프로세스 개념과 상태 변화 및 관리

    프로세스(Process)란? 초기에 사용하던 컴퓨터는 프로그램을 한 번에 하나씩 실행했고, 실행 중인 프로그램이 컴퓨터 자원을 독점했다. 반면에 다중 프로그래밍 환경에서는 여러 프로그램을 메모리에 적재하여 병행 실행할 수 있어 컴퓨터의 효율을 높일 수 있다. 병행 실행하는 프로그램들은 컴퓨터 자원을 공유하므로 이를 제어하는 방법이 필요한데, 이 과정에서 해당 포스팅의 주제인 프로세스(Process)가 등장한 것이다. IBM 운영체제에서는 프로세스를 작업(task)이라고 칭하기도 한다. 프로세스는 다음과 같이 다양하게 정의할 수 있다. 실행 중인 프로그램 비동기적 행위 실행중인 프로시저 실행 중인 프로시저의 제어 추적 운영체제에 들어 있는 프로세스 제어 블록 프로세서에 할당하여 실행할 수 있는 개체 디스패..

    [OS] System Structure & Program Execution 2

    동기식(Synchronous)과 비동기식(Asynchronous) 입・출력 용어가 생소할 수 있는데 단순화해서 설명하자면 동기식은 작업 A, B, C가 있으면 A가 끝나야 B를 실행할 수 있고 B가 끝나야 C를 수행할 수 있는 방식이고, 비동기식은 A를 요청만 하고 작업이 끝나기 전에 다른 작업을 또 요청할 수 있는 방식이다. 두 가지 방식 모두 인터럽트(Interrupt)로 입・출력이 끝났음을 알린다. 동기식 입출력 (Synchronous I/O) 동기식 입출력은 입출력 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가는 것을 말한다. 예를 들어, 프로그램이 디스크에서 어떤 정보를 읽어 오라는 요청을 했을 때 디스크 입출력이 완료되기까지는 어느 정도의 시간이 소요될 것이다. 이때 2..

    [OS] System Structure & Program Execution 1

    컴퓨터 시스템의 구조는 컴퓨터 내부 장치인 CPU, 메모리와 컴퓨터 외부 장치(입출력 장치)인 디스크, 키보드, 마우스, 모니터, 네트워크 장치 등으로 구분된다. 컴퓨터는 외부 장치에서 내부 장치로 데이터를 읽어와 (input) 각종 연산을 수행한 후, 그 결과를 외부 장치로 내보내는(output) 방식으로 업무를 처리한다. CPU(Central Processing Unit) 저장장치에 있는 코드를 불러와서 수행하거나 외부 장치로부터 입력을 받거나 출력하는 기능을 한다. 인간의 신체 기관으로 비유하면 뇌에 해당한다. 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하고 처리하는 가장 핵심적인 컴퓨터의 제어 장치, 혹은 그 기능을 내장한 칩을 말한다. 컴퓨터 안의 중앙 처리 장치(CPU)는 외부에서 정보를 ..

    [운영체제] 운영체제란?

    운영체제란 무엇인가? 운영체제는 윈도우, 맥, 안드로이드, IOS 등과 같이 실생활에서도 자주 들어볼 수 있는 단어와 밀접한 관계가 있다. 운영체제는 컴퓨터를 동작시키는 데 도움을 주는 소프트웨어인데 사실 운영체제가 없어도 컴퓨터를 동작시킬 수 있다. 하지만 컴퓨터 사용자가 하드웨어 자체를 다룬다는 것은 쉽지 않은 일이기 때문에 기본적으로 컴퓨터에 운영체제를 탑재하는 것이다. 운영체제는 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어로 하드웨어 + 운영체제를 컴퓨터 시스템이라고도 부른다. 우리가 사용하는 각종 소프트웨어들은 바로 이 컴퓨터 시스템 위에서 작동하게 된다. 즉, 운영체제는 하드웨어와 응용 프로그램 사이에서 중개역할을 하는 인터페이스로, 사용자 프로그램들을 실행하고, 문제점들을 쉽게 해결하며,..