개념과 정의
운영체제는 모든 하드웨어와 소프트웨어를 관리하는 컴퓨터 시스템의 일부인 이그제큐티브 매니저로 정의할 수 있습니다. 운영체제는 누가 시스템을 사용할 수 있는지, 어떻게 사용할 수 있는지를 관리합니다.즉, 운영체계가 컴퓨터 시스템을 관리하는 상사입니다.
운영체제는 중앙처리장치(CPU), 주기메모리장치, 주변기기 등의 여러 하드웨어 시스템에 동작을 차례로 할당하여 CPU에 파일 액세스, 애플리케이션 드라이브, 모니터 및 메모리 스토리지 제어, 폰트 명령어 인터체인지 등의 특수한 태스크를 수행하도록 지시하는 매우 복잡한 일련의 명령어입니다.허장성세 또한 여러 사용자가 동시에 태스크를 실행할 경우 이른바 타임셰어링 방식으로 태스크의 우선순위를 설정하고 시간과 자원을 효율적으로 분산하여 네트워크상의 다른 컴퓨터와의 상호작용을 제어한다.
요컨대, 운영체제는 하드웨어를 제어하고, 컴퓨터 자원을 관리하며, 컴퓨터 사용을 용이하게 하고, 어플리케이션의 실행을 지원하며, 사용자와 하드웨어 간의 매체로서 기능하는 소프트웨어라 할 수 있다.
운영체제의 종류에는 배치처리 운영체제, 인터랙티브 운영체제, 실시간 운영체제, 하이브리드 운영체제 등이 있으며 사용자와의 대화 없이 태스크를 수집하고 순차적으로 실행한다.
대화형 운영체제는 시분할 시스템이라고도 하며, 복귀시간은 배치처리보다 빨라 사용자에게 즉시 피드백(대화)을 제공한다. 유저수에 따라서는, 응답 시간은 몇분 또는 수십초 걸리는 경우가 있습니다.
실시간 운영 체제는 모든 시스템 중 응답 시간이 가장 빠르고, 현재 결정에 따라 결과가 영향을 받아 데이터 처리가 매우 빠르고, 복귀 시간이 매우 중요한 환경에 적합합니다. 하이브리드 운영체제는 배치 처리와 인터랙티브 처리의 복합 운영체계로 인터랙티브 작업이 많지 않으면 배치 프로그램이 백그라운드에서 실행된다. 현재 사용되는 컴퓨터 시스템의 대부분은 하이브리드 시스템이다.
역사와 발전의 단계
연도 | 처리방법 | 내용 |
1940년대 | 초기 전자 디지털 컴퓨터 | • 운영체계가 존재하지 않는다 • 기계식 스위치만으로 동작 |
1950년대 | 간단한 순차 처리 | • 한번에 실행하는 작업은 1개뿐입니다. • IBM701(GM)을 위한 운영체제 개발 |
1960년대 | 다중 프로그래밍 | • 1964년 IBMS360 운영체제 개발 • 멀티프로그래밍, 멀티프로세싱, 시분할처리의 개념이 등장한다 • 멀티인터랙티브 사용자, 멀티모드 시스템의 범용화 |
1970년대 | 멀티 모드 시분할 | • 멀티모드 시분할 시스템의 일반화 (일괄처리, 시분할처리, 실시간 처리) • 근거리 네트워크 (이더넷) (표준에 준거) • 암호화는, 정보 보호와 시큐러티 문제의 증가에 불가결합니다. |
1980년대 | 분산망 | • 운영 체제 기능이 하드웨어에 포함되어 있는 펌웨어 개념의 출현 • 전개 가능한 퍼스널 컴퓨터, 워크스테이션, 강력한 데스크톱 컴퓨터 • 다양한 어플리케이션 개발과 데이터베이스 이용률 확대 • 클라이언트 서버 모델의 네트워크 기반 확장 |
1990년대 | 병렬 계산과 분산 계산 | • 집중이 아닌 분산으로 진화한다 • 네트워크 및 멀티미디어 처리 기술의 진보 • 인터넷 보급의 급속한 확대 • 확장 그래피컬 사용자 인터페이스(GUI) • 가상 메모리 선점, 멀티태스킹, 멀티스레드, 범용화 • PC용 operating system(Windows, Mac) 및 서버용 operating system (Unix, Linux)이 일반적으로 된다. |
2000년대 | 모바일 및 임베디드 운영 체제 |
• 시스템은 초고속, 고기능, 초경량의 방향으로 개발된다 • 각종 통신망의 확충과 개발체제의 정비 • 범용성, 확장성, 호환성 극대화 • 네트워크 기반 분산과 병렬 운영체제의 보편화 • PDP, PMP, 가전제품 등의 모바일 디바이스용 모바일 및 임베디드 운영체제 범용화 • 64비트 CPU와 호환되는 64비트용 운영 체제 |
접근법과 주요 연구분야
1) 접근법
리소스 모니터링, 감시, 관리, 각종 입출력 장치 제어, CPU 스케줄링, 작업관리, 메모리 관리를 담당합니다.
- 제어 프로그램
(1) 슈퍼바이저 프로그램 처리 프로그램의 실행 프로세스와 시스템 전체의 동작 상태를 감시합니다.
(2) 데이터 관리 프로그램: 주기적 기억 장치와 보조 기억 장치 사이의 데이터 전송 또는 보조 기억 장치에 기억된 데이터의 갱신과 보수를 담당한다.
(3) 작업관리 프로그램 다음에 실행할 태스크를 선택하거나, operating system의 작업 스케줄러의 역할과 기동, 종료, 실행, 일시정지 등의 입출력 디바이스 할당을 담당하는 프로그램.
- 가공 프로그램
(1) 언어 번역자: 어셈블러, 컴파일러, 인터프리터 등.
(2) 서비스 프로그램 파일 복사, 텍스트 편집, 데이터 정렬, Marge 또는 프린터 조작 등의 유틸리티 프로그램을 지원하는 프로그램.
(3) 문제 프로그램: 사용자가 독자적인 문제를 해결하기 위해 작성한 프로그램.
운영체제의 컴포넌트는 프로세스 매니저, 사이클 메모리 매니저입니다. 파일 매니저와 디바이스 매니저로 분류됩니다. 프로세스 매니저는 프로세스에 CPU를 할당하는 방법을 결정하고 프로세스는 실행 중인 프로그램 또는 태스크의 이행 또는 프로세스 상태(준비, 실행, 대기)를 처리합니다. 프로세스 매니저는 프로세스를 할당하면 필요한 레지스터와 테이블을 작성하여(프로세스 제어 블록 생성) 태스크가 완료 또는 허가되었을 때 프로세스를 반환합니다.
정기메모리 매니저는 정기메모리 공간에 대한 각 요구가 유효한지의 여부를 체크하고 정당한 경우 빈 영역에 정기메모리를 할당하여 멀티사용자 환경에서 정기메모리 사용을 체크하는 테이블을 작성합니다. 주기적 기억장치를 반환할 때가 되면 주기적 기억장치를 복구하여 운영체제 자체가 점유하는 주기적 기억공간을 보호하여 우발적 또는 고의로 스스로 사용한 공간을 보호한다.
디바이스 매니저는 모든 디바이스, 채널 및 제어를 감시하며 시스템 설계자가 결정한 스케줄링 엔터프라이즈를 기반으로 시스템 내의 모든 디바이스를 가장 효율적으로 할당하고 모든 디바이스의 할당, 부팅 및 리턴을 제어합니다.
파일 관리자는 시스템에서 작동하는 모든 프로그램을 모니터링하고 컴파일러, 인터프리터, 어셈블러, 유틸리티, 데이터 파일 및 응용 프로그램을 관리하며, 파일을 열어 리소스를 할당하거나 파일을 닫고 리소스를 회수합니다.
주요용어와 관련직업
(1) 주요 용어
반복 부분을 분리, 명명, 호출하는 매크로, 서브 프로그램은 컴파일 전에 확장되며, 서브 프로그램은 확장하지 않고 저장 공간을 줄일 수 있다는 이점이 있다.
• 로더: 외부 메모리 디바이스에서 주 메모리 디바이스로 정보를 전송하기 위해 메모리 할당, 접속, 재배치 및 로드를 수행하는 서비스 프로그램.
• 링커: 복수의 오브젝트를 1개의 실행 파일로 작성합니다. 보통 프로그램 루틴, 컴파일 또는 어셈블 루틴은 실행 가능한 루틴을 작성하기 위해 다른 곳에서 수집됩니다.
• 오버레이: 큰 프로그램을 작은 모듈로 잘라서 RAM에 로딩하고 필요한 부분만 실행할 수 있도록 하는 기술로 프로그래머는 모듈에 대한 연결 단위와 순서를 지정해야 합니다. 이들 오버레이의 결점은 가상 메모리 기술을 사용하여 해결됩니다.
• 스와프는 복수의 프로그램을 하나의 메모리에서 실행할 수 있도록 하기 위해 사용되는 기술로 실행 중 스왑아웃 되고 세컨더리 메모리 디바이스로 이동되며 실행 중 스왑인 됩니다.
• 버퍼링: 주기적인 메모리 디바이스의 일부를 선입 버퍼로 사용하여 프로그램이 CPU 동작과 I 동작을 오버레이 함으로써 CPU 효율을 향상시킵니다. 버퍼링은 2개 이상의 버퍼를 사용해도 효과적입니다.
• 스풀: 주기적 메모리 디바이스를 사용한 버퍼링은 여러 프로그램이 입력과 CPU 동작을 오버레이 할 수 있는 세컨더리 메모리 디바이스에서 직접 액세스 및 스토리지(DASD)를 가진 디바이스인 디스크를 사용합니다.
• 프로세스: 실행중의 프로그램, 사이클 메모리에 격납된 프로그램, 프로세스 제어 블록(PCB)과 결합된 코드.프로세스는 작업 중에 필요한 정보나 일정에 필요한 다양한 정보를 기억하는 구조입니다. 작업 스케줄러에 의해 작성되어 사이클 메모리에 들어갑니다.
• 셸: 커널과 사용자의 인터페이스로서 기능하는 부분.사용자의 명령어를 변환하고 실행을 지시하여 결과를 사용자에게 반환합니다. DOS에서는 command.com가 셸로서 기능하고, UNIX에서는 셸의 종류가 다양하다. 이들 셸은 사이클 메모리에는 존재하지 않지만 사용자의 필요에 따라 로드 및 실행됩니다.
• 커널: 운영체제 기능의 중요한 부분인 리소스를 관리하는 모듈의 집합. 메모리 관리와 인터럽트 처리 스케줄링 등의 기능을 담당해 사용자는 커널의 기능을 직접 제어할 수 없고 셸에 의해서만 위탁된다. 커널은 항상 필요하며 메모리에 로딩됩니다.
• 스레드 : 프로세스는 프로세스의 제어 부분인 실행 환경 부분과 제어 부분 두 부분으로 나눌 수 있습니다. 쓰레드는 실행에 필요한 최소한의 정보로 메모리 디바이스 및 이에 속하는 프로세스의 파일 등 다른 쓰레드와 실행 환경을 공유함으로써 운영 체제의 성능을 향상시킬 수 있습니다.
• 프리엠프티브 스케줄링 : 중앙처리장치를 효율적으로 이용할 수 없는 지점에 프로세스가 도달할 때마다 중앙처리장치를 사용할 권리가 다른 프로세스로 넘어가는 방식으로 우선순위가 높은 프로세스가 긴급히 실행되는 경우에 유용하다.
• 비프리엠프티브 스케줄링: 프로세스에 자원을 할당하면, 프로세스는 실행 종료까지 중앙 프로세서의 라이선스의 사용 전용으로서 사용되는 것이 많지만, 모든 프로세스를 관리하는 것은 공평하다.
• 동시 프로세스: 많은 프로세스는 시스템 내에서 동시에 실행되고 시스템 내에서 동시에 실행되지만 CPU 상에서 실행되는 프로세스는 항상 하나뿐입니다.
• 데드록(=데드록): 멀티프로그래밍 환경에서는 두 프로세스가 다른 프로세스가 가진 자원을 기다리고 점유하는 자원을 포기하지 않기 때문에 핸들러를 영원히 줄 수 없다.
• 플래그먼테이션: 메모리를 연속해서 할당하면 크기가 맞지 않아 사용할 수 없는 공간(플래그먼테이션 공간)이 생길 수 있습니다.
'IT개발' 카테고리의 다른 글
머신러닝과 딥러닝 (0) | 2021.08.04 |
---|---|
고급언어 (0) | 2021.08.04 |
컴퓨터공학의 주요 과목 (0) | 2021.08.03 |
컴퓨터공학의 주요 분야 및 발전전망 (0) | 2021.08.03 |
컴퓨터 공학이란 (0) | 2021.08.03 |