OS 25

[OS/운영체제] 프로세스(Process) - (2)

PCB (Process Control Block) 각 프로세스는 운영체제에서 PCB의 형태로 표현된다. (Task Control Block이라고도 한다) PCB는 다음 그림과 같이 프로세스와 관련된 다양한 정보들을 담고 있다. - Process State : New, Ready, Running, Waiting 등의 상태를 담는다. - Program Counter : 이 프로세스에서 다음으로 실행될 Instruction의 주소를 담는다. - CPU Register : Program Counter와 더불어 프로세스가 진행된 상태를 저장해 interrupt가 발생한 이후에도 프로세스가 잘 동작하도록 한다. - Memory-management Information : 페이지 테이블, 세그먼트 테이블 등의 메모리..

운영체제 2020.11.04

[OS/운영체제] 프로세스(Process) - (1)

프로세스(Process)란? 일반적으로 실행 중인 프로그램을 지칭한다. 그렇다면 왜 프로세스라는, 실행 중인 프로그램에 대한 개념이 별도로 필요할까? 우리는 대개 컴퓨터를 사용할 때 단 하나의 프로그램만 사용하지 않는다. 크롬과 같은 웹 브라우저, 음악을 재생하는 프로그램, 메신저 프로그램 등 여러 개의 프로그램을 동시에 켜놓고 사용하기 마련이다. 하지만 실행 중인 프로그램들 중 우리가 실제로 조작하고 사용하는 프로그램은 한 순간에 단 하나뿐이다. 따라서 OS는 프로그램 고유의 내부 기능이 잘 동작하도록, 실제로 사용하는 프로그램에게 메모리 관리와 같은 지원을 해 주어야 한다. 메모리에서의 프로세스 (Process Memory Layout) 각 프로세스마다 다음과 같은 메모리 영역을 가진다. - 스택 영..

운영체제 2020.11.04

[OS/운영체제] OS 구조 (OS Structure)

Monolithic Structure (단일 구조) 복잡하고 모듈화된 OS구조의 반대 개념이다. 어플리케이션 및 모든 커널 서비스들이 같은 주소 공간에 위치하기 때문에, 각 컴포넌트 간의 커뮤니케이션이 비교적 효율적이다. 하지만 어느 한 부분이 수정되면 전체를 다시 컴파일 해야하고, 한 컴포넌트에서 발생한 문제가 전제 시스템의 문제가 될 가능성이 크다. Layered Approach (계층 구조) Monolithic의 단점을 보완할 수 있는 계층 구조이다. 상위 계층은 하위 계층을 호출되고, 하위 계층은 상위 계층에게 호출되어 정보를 제공한다. 각 계층별로 구분되어 있기 때문에 Monolithic 구조에 비해 어느 한 부분에 발생한 문제를 해결하기 비교적 쉽다. (그 계층에 대해서만 수정 및 재컴파일 하..

운영체제 2020.11.03

[OS/운영체제] 인터럽트(Interrupt), 시스템 콜(System Call)

인터럽트(Interrupt) 와 트랩(Trap) 인터럽트(Interrupt)는 하드웨어가 시스템의 수행 흐름을 바꾸기 위해 CPU를 일시적으로 멈추는 것이다. 인터럽트는 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉜다. · 하드웨어는 CPU에 특정한 신호를 보내 인터럽트를 발생시킨다. · 소프트웨어는 시스템 콜(System Call) 이라는 연산을 실행하여 발생시킨다. 이를 트랩이라고도 한다. I/O 인터럽트 (Input/Output Interrupt) 입출력 하드웨어로부터 발생되는 인터럽트이다. 입출력의 수행이 끝나면 이 인터럽트를 통해 CPU에게 입출력이 끝났음을 알린다. 입출력은 동기식 입출력과 비동기식 입출력으로 나뉜다. 동기식 입출력(Synchronous I/O) 은 입출력이 끝날 때까지 해당 ..

운영체제 2020.11.03

[OS/운영체제] 운영체제란? (OS, Operating System)

OS (Operating System, 운영체제) 운영체제는 컴퓨터 하드웨어를 관리하는 프로그램이다. 응용프로그램의 실행 환경을 제공하는 등 사용자와 컴퓨터 하드웨어 사이의 중간자 역할을 한다. 운영체제는 일반적으로 항상 수행되고 있는 유일한 프로그램, 즉 커널(Kernel) 로 정의된다. 운영체제는 컴퓨터 시스템을 효율적으로 운영하고 사용자에게 편리함을 제공하는 것에 그 목적이 있으며, 또한 컴퓨터 자원의 공정하고 효율적인 할당과 입출력 장치의 제어와 동작을 관리한다. ※ 본 게시글은 『Operating System Concepts』 를 참고하여 작성되었습니다.

운영체제 2020.10.08