Computer Science/OS 7

POSIX 기초

POSIXPOSIX(Portable Operating System Interface)는 이식가능 운영체제 인터페이스의 약자다. 서로 다른 유닉스 운영체제의 공통 API를 정리하여 이식성이 높은 유닉스 응용프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다.쉽게 말해, 어떤 OS에서 개발한 프로그램을 다른 OS에서도 쉽고 돌아가도록 하는 표준이다.표준 스트림표준 스트림(Standard Stream)은 특정한 프로그래밍 언어 인터페이스뿐만 아니라 유닉스 및 유닉스 계열 운영체제에서 컴퓨터 프로그램과 그 환경(키보드나 모니터와 같은 장치들) 사이에 미리 연결된 입출력 통로를 가리킨다.일반적으로 유닉스에서 동작하는 프로그램은 실행 시, 세 개의 스트림이 자동으로 열린다. 이를 표..

Computer Science/OS 2024.06.27

입출력 관리

컴퓨터의 주요한 두가지 작업은 연산 작업과 입출력 작업이다. 그중 입출력 작업은 컴퓨터에 연결된 다양한 입출력 하드웨어 장치들과 어떤 식으로 상호작용하는지에 관한 작업이다.마우스, 키보드, 모니터 등 다양한 장치들이 컴퓨터와 잘 동작하게 하려면 둘 사이에 공통된 인터페이스가 존재해야 한다. 컴퓨터와 하드웨어 장치 사이의 공통된 인터페이스 역할을 수행하는 것이 입출력 관리의 핵심이다.입출력 장치의 구성하드웨어 장치는 케이블을 통해 또는 무선으로 신호를 보냄으로써 컴퓨터와 통신한다. 이때 포트를 통해 컴퓨터에 접속하는데, 하드웨어의 또 다른 구성요소는 제어기이다.제어기는 포트나 입출력 장치를 제어하는 전자회로의 집합체이며, 많은 입출력 장치는 제어기를 내장하고 있다. 입출력 장치의 동작1) 폴링 (polli..

Computer Science/OS 2024.06.26

메모리 관리

어떤 프로그램이든 프로세스가 되기 위해 메모리에 적재되어야 실행 가능하다. 따라서 메모리는 중요한 작업 공간이고, 한정된 메모리를 다중 프로그래밍 환경에서 여러 프로세스가 함께 메모리를 사용하므로 효율적인 관리가 필요하다.메모리 관리는 운영체제를 비롯해 여러 작업을 동시에 처리할 때 메모리를 어떻게 관리하는가에 대한 문제다. 복잡한 메모리 관리는 메모리 관리 시스템(Memory Management System, MMS)이 담당한다.메모리 관리자의 역할메모리 관리는 메모리 관리자가 담당한다. 메모리 관리자는 메모리 관리 유닛(Memory Management Unit)이라는 하드웨어인데 일반적으로 메모리 관리자라고 부른다. 메모리 관리자의 작업은 가져오기, 배치, 재배치이다.각 작업에 정책을 수립하여 그 정..

Computer Science/OS 2024.06.26

멀티스레드에서의 동시성과 병렬성

스레드와 멀티스레드스레드(thread)는 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 하나의 프로세스 내에서 두 개 이상의 스레드가 동시에 작업을 수행하는 것을 멀티스레드(multi-thread)라고 한다. 멀티스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유한다.멀티스레드의 동작 방식동시성과 병렬성은 멀티스레드의 동작 방식이다. 동시성 (Concurrency)동시성은 싱글 코어에서 멀티스레드를 동작시키기 위한 방식으로 멀티태스킹을 위해 여러 개의 스레드가 번갈아가면서 실행되는 성질을 말한다. 동시성을 이용한 싱글 코어의 멀티 태스킹은 각 스레드들이 병렬적으로 실행되는 것처럼 보이지만 사실은 조금씩 번갈아가며 실행되..

Computer Science/OS 2024.06.26

프로세스 간 통신 (IPC)

IPC란?프로세스는 자신에게 할당된 메모리 내의 정보만 접근할 수 있고, 이를 벗어나서 접근할 경우 (C의 경우 segmentation fault) 오류가 발생한다. 이는 안전성을 위해 OS에서 자기 프로세스의 메모리만 접근하도록 강제하는 것이다.프로세스 간 통신(Inter Process Communication, IPC)은 프로세스끼리 서로 데이터를 주고받는 행위 또는 그에 대한 방법을 뜻한다. IPC에는 같은 컴퓨터에 있는 프로세스뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와의 통신도 포함된다.IPC 종류1) 공유 메모리 (Shared Memory)를 이용한 통신 말 그대로 메모리의 일정 영역을 공유하는 것이다. 데이터 자체를 공유하도록 지원한다.공유 메모리는 커널에서 관리된다. 프로세..

Computer Science/OS 2024.06.26

프로세스 관리

프로세스란?프로세스는 운영체제에서 하나의 작업 단위이며 태스크(task)라고도 부른다. 프로그램은 일반적으로 하드디스크 같은 저장장치에에 저장되어 있는 정적 상태고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태다.프로그램에서 프로세스로의 전환프로그램을 메모리의 적당한 위치로 가져올 때 PCB를 생성한다. 프로그램이 프로세스가 되었다는 것은 운영체제로부터 PCB를 받았다는 의미다.프로그램과 프로세스의 관계프로세스 = 프로그램 + PCB프로그램 = 프로세스 - PCB 프로세스 제어 블록 (PCB)프로세스 제어 블록(Process Control Block, PCB)은 프로세스를 실행하는데 필요한 중요한 정보를 보관하는 자료 구조로, TCB(Task Control Block) 라고도 부른다. 모든 프로세..

Computer Science/OS 2024.06.26

운영체제 구조와 동작 방식

운영체제(Operating System)는 컴퓨터 하드웨어의 리소스를 관리해주면서 동시에 여러 애플리케이션이 작동할 수 있는 환경을 제공해주는 소프트웨어다.분류내용하드웨어 자원CPU, 메모리, 키보드, 마우스, 네트워크 카드소프트웨어 자원각종 프로그램, 데이터 운영체제 구조운영체제는 크게 커널과 인터페이스로 이루어져 있다. 커널은 운영체제 핵심 기능을 모아놓은 곳으로 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리, 프로세스 간 통신 관리 등을 수행한다.프로세스 관리 : 프로세스에 CPU를 분배하고 작업에 필요한 제반 환경 제공메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 모밀보다 큰 가상 공간 제공파일 시스템 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스 제공입출력 관리 :..

Computer Science/OS 2024.06.26