728x90
반응형

OS 8

[OS] POSIX 기초

POSIX (Portable Operation System Interface) 이식 가능한 운영 체제 인터페이스의 약자로, 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 UNIX 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격입니다. 즉, 한 운영체제에서 개발한 프로그램을 다른 운영체제에서도 쉽게 돌아가도록 하는 표준을 말합니다. (소스코드의 호환) 표준 스트림 특정한 프로그래밍 언어 인터페이스 뿐 아니라 유닉스 및 유닉스 계열 운영체제에서 컴퓨터 프로그램과 그 환경 사이에 미리 연결된 입출력 통로를 말합니다. 표준 스트림으로 인해 프로그래머나 프로그램에서 입출력을 사용해야 할 때, 입출력 장치를 연결하기 위한 추가 작업 필요 없이 입출력을 사용할 ..

Backend/OS 2022.09.11

[OS] I/O Management

입출력 관리 컴퓨터에서 연산 작업과 함께 입출력 작업은 중요합니다. 예를 들면 컴퓨터 화면을 보는 작업, 문서를 작성하는 작업 등 대부분이 입출력 작업이기 때문입니다. 마우스, 키보드, 모니터와 같은 다양한 장치들이 컴퓨터에서 잘 동작하도록 하려면 입출력 장치와 컴퓨터 사이에 공통된 인터페이스가 존재해야 합니다. 아래와 같이 입출력 제어기를 통해 메인 메모리와 프로세서와의 상호작용을 위해 시스템 버스에 연결되어 있는 것을 볼 수 있습니다. 입출력 하드웨어의 구성 하드웨어 장치는 케이블을 통하거나, 무선으로 신호를 보내 컴퓨터와 통신을 합니다. 이때 포트를 통해 컴퓨터에 접속하는데 하드웨어 장치의 또 다른 구성요소는 제어기 입니다. 제어기는 포트나 입출력 장치를 제어하는 전자 회로의 집합체이며 많은 입출력..

Backend/OS 2022.09.03

[OS] Interprocess Communication

프로세스 간 통신이 필요한 이유 프로세스들이 서로의 공간을 쉽게 접근할 수 있다면 데이터나 코드가 바뀔 수 있기 때문에 위험합니다. 안전하게 프로세스 간에 통신을 할 수 있게 하기 위해서 IPC를 이용한 통신 방법을 제공합니다. 여러 프로세스들이 많은 일들을 처리하면서 성능을 내기 위해서 서로 상태 확인과 데이터 송수신이 필요합니다. IPC 내부 프로세스들 사이에 데이터를 효율적으로 주고 받기 위한 통신을 말합니다. IPC 기법 1. 파이프 (Pipe) 통신을 위한 메모리 공간을 생성하여 프로세스가 데이터를 주고받을 수 있게 합니다. fork()를 통해 자식 프로세스를 생성하였을 때 부모와 자식간의 통신 할 때 사용합니다. 기본 파이프는 단방향 통신입니다. 그렇기 때문에 일반적으로 2개의 파이프를 사용합..

Backend/OS 2022.08.19

[OS] Memory Management (2) - 메모리 관리 방법

Address Binding 프로세스의 주소는 논리적 주소와 물리적 주소로 나뉩니다. 논리적 주소는 가상 주소라고도 하며, CPU가 생성하는 주소입니다. 프로세스마다 독립적으로 가지는 주소 공간이기 때문에 프로세스의 내부에서 사용하고, 프로세스마다 0부터 시작합니다. 물리적 주소는 프로세스가 실행되기 위해 실제로 메모리에 올라가는 위치입니다. Address Binding 프로그램이 어떤 물리적 주소에 Load 될지 결졍하는 과정입니다. Address Binding 종류 Compile Time 프로세스의 물리적 주소가 컴파일 때 결정됩니다. 프로세스가 메모리의 어느 위치에 들어갈지 알고 있다면 컴파일러가 절대 주소를 생성합니다. 컴파일 타임의 주소 할당은 내부에서 사용하는 논리적 주소와 물리적 주소가 동일..

Backend/OS 2022.08.16

[OS] Memory Management (1) - 메모리 관리 개념

Memory Management (메모리 관리) 프로그램은 프로세스가 되어 프로세서에 적재되기 위해 메모리에 적재되어야 합니다. 따라서 메모리는 중요한 작업 공간이고, 한정된 메모리를 다중 프로그래밍 환경에서 이용하기 위해서 여러 프로세스가 함께 메모리를 사용하면서 효율적으로 관리해야 합니다. 메모리를 효율적으로 관리하기 위해 메모리 관리자, 메모리 관리 장치(MMU), OS 관리 모듈이 있습니다. 메모리 관리 정책 적재 정책(Fetch Policy) 디스크에서 메모리로 프로세스를 언제 가져와야 할지 정합니다. 배치 정책(Placement Policy) 디스크에서 메모리로 가져온 프로세스를 어느 위치에 저장할 것인지 정합니다. 대치 정책(Replacement Policy) 메모리가 충분하지 않을 때 현재..

Backend/OS 2022.08.09

[OS] Process Management (2) _ CPU 스케줄링

CPU 스케줄링 어떤 프로세스에 CPU를 배정할지 결정하고, 모든 프로세스가 공평하게 작업할 수 있도록 합니다. 스케줄링 목적 공평성 - 모든 프로세스가 자원을 공평하게 배정받아야 합니다. 효율성 - 시스템 자원을 비는 시간 없이 스케줄링 해야합니다. 안전성 - 우선순위를 사용하여 중요한 프로세스가 먼저 처리되도록 해야합니다. 반응 시간 보장 - 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 인식하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 합니다. 무한 연기 방지 - 특정 프로세스의 작업이 무한히 연기되어서는 안됩니다. 스케줄링의 단계 고수준 스케줄링 시스템 내의 전체 작업 수를 조절합니다. 시스템 과부하를 막기 위해 작업에 따라 승인할지 또는 거부할지를 결정하기 때문에 시스템 내..

Backend/OS 2022.07.27

[OS] Process Management (1) _ 프로세스, 멀티프로그래밍

프로세스 (Process) 메인 메모리에 할당되어 실행 상태(running)인 프로그램을 말합니다. 보조기억장치에 있는 프로그램이 메인 메모리로 적재되었을 때 프로세스라고 부릅니다. 프로세스 상태 (Process Status) new - 메인 메모리에 올라오는 상태입니다. ready - CPU 할당을 받는 것을 기다리는 상태입니다. running - CPU가 할당되어 작업 수행 중인 상태입니다. waiting - 입출력 장치와 같은 CPU 외의 할당을 받아 기다리는 상태입니다. termimated - 모든 작업이 끝난 상태입니다. PCB (Process Control Block) 각 프로세스마다 존재하며 프로세스 상태, 프로세스 번호(PID), PC value, MMU info, CPU time, reg..

Backend/OS 2022.07.26

[OS] Terminal Usage (2) _ Terminal 명령어

Terminal Usage : 터미널 사용방법 현재 디렉터리 표시 pwd 디렉터리 이동 cd 현재 사용자 확인 whoami 디렉터리 정보 확인 ls [흰색은 파일, 하늘색은 디렉터리] 디렉터리만 출력 ls -d */ 디렉터리의 더 자세한 정보 확인 ls -l [파일의 권한, 소유자, 그룹, 파일크기, 수정일 정보 출력] 가장 최근에 수정된 파일로 정렬 ls -t 가장 사이즈가 큰 파일로 정렬 ls -s 디렉터리 순서를 거꾸로 출력 ls -r 현재 디렉터리 아래의 내용 모두 확인 ls -R 디렉터리 생성 mkdir [디렉터리 이름] 디렉터리 경로 지정 생성 mkdir -p [경로] *경로에 디렉터리가 없다면 자동으로 생성* -p 옵션 디렉터리 삭제 rmdir 경로 [거의 사용하지 않음] -> rm -rf ..

Backend/OS 2022.07.19
728x90
반응형