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), 프로세스는 프로그램 이렇게 처음엔 단순하게 접근하는 것이 더 좋은 것 같다.
참조
'정보보안 > 시스템 기초' 카테고리의 다른 글
윈도우(Windows) 서비스 및 보안 감사 설정 (0) | 2024.06.03 |
---|---|
윈도우(Windows) 계정 관리 및 계정 권한 (BitLocker) (0) | 2024.06.03 |
윈도우 운영체제 기초 (OLE, NTFS 등 특징 및 레지스트리) (0) | 2024.06.03 |
운영체제 종류 (0) | 2024.05.30 |
운영체제 개요 (0) | 2024.05.29 |