운영체제 ?
컴퓨터 시스템 자원을 효율적으로 관리해서
응용 프로그램을 통해 pc 사용자에게 보여주고 또는 app 을 통해서 모바일 사용자한테 보여준다.
운영체제의 역할
User Interface( 편리성 )
- CUI ( Character user interface )
- GUI ( Graphical User interface )
- EUCI ( End-User Confortable interface)
Resource management ( 효율성 )
- HW resource ( processor, memory, I/O devices, Etc. )
- SW resource ( file, application, message, signal, Etc. )
Process and Thread management
System management(시스템 보호)
컴퓨터 시스템이 어떻게 생겼나
OS는 System Call interface와 커널의 두 계층이다.
커널은 많은 기능을 제공, 사용자가 커널을 직접 접근하면 문제가 발생함.
그래서 , 마음대로 들어가지 않고, 필요한 기능을 OS에게 요청하는 통로를 System Call interface이다.
운영체제의 구분
- 동시 사용자 수
- single-user system
- Multi-user system
- 동시 실행 프로세스 수
- single-tasking system
- Multi-tasking system (Multiprogramming system)
- 작업 수행 방식 (사용자가 느끼는 사용 환경)
- Batch processing system
- Time-sharing system
- Distributed processing system
- Real-time system
동시 사용자 수
- 단일 사용자 (Single-user system)
- 한 명의 사용자만 시스템 사용 가능
- 한 명의 사용자가 모든 시스템 자원 독점
- 자원관리 및 시스템 보호 방식이 간단 함
- 개인용 장비 (PC, mobile) 등에 사용
- Windows 7/10, android, MS-DOS 등
- 다중 사용자 (Multi-user system)
- 동시에 여러 사용자들이 시스템 사용
- 각 종 시스템 자원(파일 등)들에 대한 소유 권한 관리 필요
- 기본적으로 Multi-tasking 기능 필요
- OS의 기능 및 구조가 복잡
- 서버, 클러스터(cluster) 장비 등에 사용
- Unix, Linux, Windows server 등
동시 실행 프로세스 수
- 단일 작업 (Single-tasking system)
- 시스템 내에 하나의 작업(프로세스)만 존재
- 하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행
- 운영체제의 구조가 간단
- 예) MS-DOS
- 다중작업 (Multi-tasking system)
- 동시에 여러 작업(프로세스)의 수행 가능
- 작업들 사이의 동시 수행, 동기화 등을 관리해야 함
- 운영체제의 기능 및 구조가 복잡
- 예) Unix/Linux, Windows 등
운영 체제의 작업 수행 방식
Batch processing system : 일괄처리 시스템
Time-sharing system : 시분할 시스템
Distributed processing system : 분산처리 시스템
Real-time system : 실시간 시스템
옛날에는 과연 운영체제가 존재했을까?
운영체제 개념 존재하지 않음
- 사용자가 기계어로 직접 프로그램 작성
- 컴퓨터에 필요한 모든 작업 프로그램에 포함
- 프로세서에는 명령어 저장 방법, 계산 대상, 결과 저장 위치와 방법, 출력 시점, 위치 등
- 실행하는 작업 별 순차 처리
- 각각의 작업에 대한 준비 시간이 소요
천공 카드를 이용해서 만약에 김 씨, 이 씨, 박 씨가 각각 C, JAVA, PYTHON으로 프로그래밍했으면
천공 카드로 구멍을 뚫어서 테스트하려고 컴퓨터 앞에서 기다려야 했음
C를 실행시키고 또, 자바를 실행하려면 컴퓨터 설정을 바꿔서 실행시켜야 되므로 오래 걸림.
이게 비효율적이어서 Batch System이 나왔음
Batch System(일괄 처리 시스템)
100개씩 쌓이면 실행시키게, 일괄 처리 시스템이 나왔다.(한 번에 처리)
- 모든 시스템을 중앙(전자 게산 소 등)에서 관리
장점👍
- 많은 사용자가 시스템 자원 공유
- 처리 효율 향상
단점👎
- 생산성 저하 ( 같은 유형의 작업들이 모이기를 기다려야 함 )
- 긴 응답 시간 ( 작업 제출에서 결과 출력까지의 시간이 오래 걸림...)
이래서 나온 게
Time Sharing System(시분할 시스템)
- 여러 사용자가 자원을 동시에 사용할 수 있었다 os가 파일 시스템 및 가상 메모리 관리.
A를 실행하고 멈추고, B를 실행 또 멈추고 , C를 실행 반복
장점👍
- 응답 시간 단축 ( 약 5초 )
- 생산성 향상
단점👎
- 통신 비용 증가( 통신선 비용, 보안 문제 )
- 개인 사용자 체감 속도 저하 ( 동시 사용자수가 늘어서 시스템 부하가 많이 걸려 느려졌다. )
Personal Computing(지금 사용하는 시스템)
개인이 시스템을 전체 독점, CPU 활용률이 고려의 대상이 아님, OS가 상대적으로 단순함
장점👍
- 빠른 응답시간
단점👎
- 성능이 낮음
성능이 낮으니깐 컴퓨터 안에 CPU를 여러 개 박자라고 해서 나온 것이
Parallel Processing System(병렬 처리 시스템)
단일 시스템 내에서 둘 이상의 프로세서 사용
- 동시에 둘 이상의 프로세스 지원
메모리 등의 자원 공유
사용 목적
- 성능 향상
- 신뢰성 향상
프로세서간 관계 및 역할 관리 필요
컴퓨터 안에 CPU 100개를 넣기에는 공간적 제약이나 여러 문제가 있을 수 있으므로 컴퓨터를 붙이자 해서 나온 것이
Distributed Processing System
- 네트워크를 기반으로 구축된 병렬 처리 시스템 (Loosely-coupled system)
장점👍
- 자원 공유를 통한 높은 성능
- 고신뢰성, 높은 확정성
단점👎
- 구축 및 관리가 어려움
Real-time System
- 작업 처리에 제한 시간(deadline)을 갖는 시스템
- 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요
- 작업(task)의 종류
- Hard real-time task
시간 제약을 지키지 못하는 경우 시스템에 치명적 영향
예, 발전소 제어, 무기 제어 등
- Soft real-time task
동영상 재생
- Non real-time task
'컴퓨터 지식' 카테고리의 다른 글
MySQL : 고급 (테이블, 인덱스 , 뷰) (0) | 2021.11.03 |
---|---|
MySQL : 기본적인 것들 내장함수 등등 (0) | 2021.11.03 |
MySQL : 기본적인 것들 DML,DDL,DCL 등등 (0) | 2021.11.03 |
컴퓨터 지식 : OSI 7 Layer (1) | 2021.08.25 |
컴퓨터 지식 : 컴퓨터 구조 + 운영체제 (0) | 2021.08.18 |