정보보안/시스템 기초

운영체제 특징

록스타★ 2024. 5. 30. 13:47
반응형

1. 다중 사용자 시스템 (Single-User System)

- 한명의 사용자만 시스템 사용 가능한 운영체제

- 한명의 사용자가 모든 시스템 자원 독점

- 자원 관리 및 시스템 보호 방식이 간단

개인용 장비(PC, mobile) 등에 사용

- MS-DoS, Window 7 / 10 / 11

- iOS, Android

 

 

2. 다중 사용자 시스템 (Multi-User System)

- 동시에 여러 사용자가 시스템을 사용 가능한 운영체제

- 시스템 자원(파일 등)에 대한 소유 권한 필요

- 기본적으로 Multi-Tasking 기능필요

- 운영체제의 기능 및 구조가 복잡

서버, 클러스터(Cluster) 장비 등에 사용

- Windows Server 제품군, UNIX, LINUX 등

 

 

다중 작업 및 가상 터미널 환경 지원

멀티태스킹 (Multi-Tasking)

- Task(작업)는 프로세스(Process)의 개념보다 조금 확장된 개념

- 멀티 태스킹은 Task가 하나의 프로세서(Processor, CPU)에서 운영체제의 스케줄링 방식에 따라 갈아가면서 수행되는 것

- 프로세서 (CPU)는 특정 순간에 하나의 작업만 수행

 

멀티태스킹 (Multi-Tasking) 스케줄링 방식

1. 멀티프로그래밍 방식 (Multi-Programming)

정의

- 단일프로세서에서 다수의 프로세스를 메모리에 적재해 작업을 처리하는 것

- 특정 프로세서가 프로세스 A를 처리할 때, 프로세스 B,C 등을 처리하게 만드는 것

- 멀티 프로그래밍을 통해 프로세서를 효율적으로ㅏ용

- A,B,C > Wait > A,B,C

- 성능 좋은 CPU를 최대한 활용

 

2. 시분할 방식 (Time-Sharing)

- 여러 사용자가 각자의 단말 장치를 통하여 운영체제와 통신하면서 각자의 프로그램을 실행

- 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 처리가 가능

-각 작업에 대한 응답 시간을 최소한으로 줄이는 것을 목표로 하며, 하드웨어를 보다 능률적으로 사용

 

3. 실시간 시스템 방식 (Real-Time)

- 특정한 Task가 CPU 독점

- 자료가 발생한 지점에서 단말기를 통하여 직접/입출력되므로 진행 속도가 빠름

- 처리시간 및 비용 단축

- 자료가 무작위로 도착하므로 입/출력 자료의 일시 지정과 대기가 필요

- 은행, 공장, 기차와 비행기 좌석 예약 등 특수목적에서 활용 (하나의 좌석을 여러 명이서 예약 못하게)

 

터미널 (Terminal)

- 컴퓨터에서 데이터를 입력하는 시작점 또는 처리 결과를 출력하는 끝 지점에 있는 장치 (모니터 등)

- 컴퓨터나 컴퓨팅 시스템에 데이터를 입력하거나 표시하는 데 쓰이는 하드웨어 기기

- 터미널은 컴퓨터와 사용자 간 서로 소통해주는 인터페이스 (인터페이스란 텍스트 기반(CLI), 그래픽 기반(GUI) 두 가지를 포함하는 용어)

 

가상 터미널

- 하나의 물리적인 터미널에서 여러 개의 가상적인 터미널을 생성해 사용하는 기술

- 각 가상 터미널은 독립적인 쉘 환경(명령 해석)을 제공하므로 독립적으로 작동

- 여러 개의 작업 동시에 수행 가능하므로 작업간의 전환이 용이

- 물리적인 터미널의 한계 극복(하나의 컴퓨터에서 여러 개의 터미널을 켜서 작업)하고, 효율적인 작업 환경 제공

 

쉘 (Shell)

- 운영체제의 커널과 사용자를 이어주는 역할

- 커널이란 운영체제의 일부로서 컴퓨터의 메모리에서 유지되는 하나의 프로그램

- Shell은 사용자의 명령어를 해석하고 운영체제가 알아들을 수 있게 해석해서 전달해 줌

- 운영체제는 Shell에게서 받은 지시로 하드웨어를 동작하기 위한 지시어로 바꿈

 

쉘 종류

sh (bounce Shell)

- 프롬프트 : $(일반유저), #(root 유저)

- 가장 오랜 기간 동안 UNIX 시스템의 표준 쉘로 이용됨

- 상호 대화형(interpreter) 방식을 취하고 있지 않음

- /bin/sh와 /sbin/sh가 있다. (shell의 절대 경로)

- ksh, zsh, bash 등이 sh 계열

 

bash(bourne-again shell)

- 프롬프트 : #

- sh의 변종

- 리눅스에서 기본으로 지원되는 쉘

- 사용자 계정을 생성할 때 특별한 쉘을 지정하지 않으면 기본적으로 bash 쉘로 지정

- /bin/bash

-  LINUX에서 많이 사용

 

csh (C 프로그램 스타일 쉘)

- 프롬프트 : %

- C언어와 유사한 언어를 사용

- 상호 대화형 방식(interpreter)으로 구성되어 있음 

- sh와 대부분 호환

- 명령행 편집 기능을 제공하지 않음

- Windows에서 많이 사용

 

ksh (korn shell)

- 프롬프트 : $

- 유닉스에서 가장 많이 사용되고 있는 쉘

- sh에 csh로부터 차용한 현대적 기능을 도입한 쉘 

- UNIX에서 많이 사용 

 

 

공개형 오픈소스 운영체제

- 컴파일된 이진코드의 형태가 아닌 소스코드의 형태로 처리되는 운영체제(대표적으로 LINUX)

- 수백 개의 고유 배포판 또는 맞춤형 시스템을 양산함

- Fedora, Ubuntu, RedHat, Debian 등

 

 

결론

시스템 기초의 경우에는 어렵지는 않고 친숙하게 "아? 한 번쯤은 들어 본 것 같다. "라는 생각이 들 수 있게 알려준다. 

조금 더 딥하게 들어간다면 당연히 더 어렵고 알아야될 게 많지만 처음 배우는 사람들은 당연히 알아야 한다고 생각한다.

프로세스는 메모리에 적재되어 ~ 이런식으로 외우는 것 보다는 프로세서는 하드웨어(CPU), 프로세스는 프로그램 이렇게 처음엔 단순하게 접근하는 것이 더 좋은 것 같다.

 

 

참조

두두아이티 

 

http://www.duduit.co.kr/

 

www.duduit.co.kr

 

키사아카데미

 

https://academy.kisa.or.kr/main.kisa

 

academy.kisa.or.kr

 

반응형