운영체제의 목적
운영체제는 하드웨어의 효율적으로 관리하고, 제어 기능 및 연산 기능 등 시스템을 향상시키며, 사용자에게 편리한 컴퓨팅 환경을 제공하기 위한 목적으로 발전되어 왔다.
(1) 일괄 처리 시스템
1950년대에 사용한 초기 운영체제의 형태로 여러 개의 단일작업을 일정시간 동안 모아두었다가 일괄적으로 처리하는 시스템이다.
속도가 느려 작업하는데 시간이 오래 걸리며, 작업을 한번 실행하면 그 작업이 끝날 때까지 다른 작업을 하지 못한다는 단점이 있다.
(2) 다중 프로그래밍 시스템
1960년에 들어서 일괄 처리 방식이 CPU를 비효율적으로 사용하고 있다는 것을 착안해 이를 개선하여 발전시켰는데 이것이 다중 프로그래밍 시스템이다. 여러 개의 프로그램을 동시에 처리할 수 있다는 의미로 이 방식은 CPU 유휴시간에 다른 프로세스를 처리하여, 입출력 장치와의 속도차이를 해소시켰다.
(3) 실시간 처리 시스템
일괄처리 시스템과 다중 프로그래밍 시스템 모두 사용자가 시스템에 명령을 내리면, 시스템이 이를 바로 실행할 수 있는 형태가 아니었다. 운영체제에 특정한 작업을 동작시키면 끝날 때까지 다른 명령에 대해서는 아무것도 못 하는 시스템이다.
실시간 처리 시스템은 전쟁할 때 적의 공중에서 공격하는 것을 대비하여 동시에 수천 지점을 감시하기 위해 개발되었으며, 데이터가 발생한 시점에서 필요한 계산 처리를 즉석에서 처리하여 그 결과를 데이터가 발생한 곳으로 즉시 되돌려 보내는 특징이 있다. 자동 응답을 제공한다는 것이다.
(4) 시분할 처리 시스템
시분할 처리 시스템은 다중 프로그래밍 시스템을 논리적으로 확장 시킨 것이다. 시분할 시스템은 시간을 작게 나누어서 프로세스들을 할당하는 것으로 다중 사용자나 여러 작업을 하나의 컴퓨터에서 할 수 있게 된 것이다. 우리가 현재 가장 일반적으로 사용하고 있는 운영체제와 비슷하다.
(5) 분산 처리 시스템
분산 처리 시스템은 하나의 컴퓨터에서 수행하던 기능을 여러 개의 분산된 컴퓨터에 분담시킨 후, 네트워크를 연결하여 서로 통신하면서 동시에 일을 처리하도록 하는 방식이다.
(6) 다중 처리 시스템
다중 처리 시스템은 여러 개의 CPU로 구성된 하나의 컴퓨터에서 여러 개의 작업을 처리하는 방식으로 신뢰성과 처리 능력을 증대시킬 수 있는 특징을 가지고 있다. 대표적인 시스템으로는 리눅스가 있다.
운영체제의 종류
(1) 개인용 컴퓨터에서 사용되는 운영체제
• 유닉스
1970년대에 벨 연구소에서 개발되었으며 제품을 판매하는 대신 소스 코드를 공개하고 변경할 수 있도록 함으로 대학이나 연구소 등에서 교육용과 연구용으로 널리 사용되었다. UNIX는 슈퍼컴퓨터에서 개인용 컴퓨터까지 다양한 종류의 컴퓨터에서 작동될 수 있으며 인터넷 서버 컴퓨터의 핵심으로 자려 잡고 있다. 유니스와 유사한 리눅스라는 운영체제도 무료 또는 저렴한 가격으로 구입할 수 있어 많이 사용되고 있다.
• 윈도우
• 매킨토시 운영체제
(2) 스마트폰 등 휴대용 기기의 운영체제
• 구글 안드로이드
표준 응용 프로그램은 기본적으로 웹 브라우저, 이메일 프로 그램, 단문 메시지 서비스(SMS), 멀티미디어 메시지 서비스(MIMS), 연락처 등을 포함하고 있기 때문에 휴대기기를 통해서 전화기능 뿐 아니라, 인터넷 기능을 이용할 수 있도록 지원한다. 안드로이드는 리눅스 커널 위에서 동작하며, 다양한 안드로이드 시스템 구성 요소에서 사용되는 C/C++ 라이브러리들을 포함하고 있다.
• iOS
• 모바일 윈도우
운영체제의 구성
(1) 커널
운영체제 시스템의 가장 중요한 부분으로써 부팅할 때 ROM에 로드되어 상주하며, 일반 사용자가 일반적으로 보거나 관여하지 못하는 시스템의 레벨 수준의 프로세스를 제어한다.
(2) 인터페이스
인터페이스는 서로 다른 두 시스템을 연결해준다는 의미로, 운영체제에서 인터페이스는 사용자와 프로그램 사이를 연결하여, 사용자가 직접 프로그램을 제어하고 사용할 수 있도록하는 것을 말한다. 사용자 인터페이스는 아이콘과 바탕화면을 지닌 그래픽 방식이나 명령줄을 지닌 문자 기반 명령방식 등으로 나눌 수 있다.
컴퓨터의 프로세스 관리
프로세스(Process)는 컴퓨터에서 실행 중인 프로그램을 말한다. 시스템 작업의 기본단위이다. 프로세스가 생성되면, 운영체제에 의해서 관리되고, 실행을 마치면 종료된다.
멀티프로그래밍은 동시에 여러 개의 프로그램을 메모리에 가지고 있는 기법이다. 멀티프로그래밍 상황에서는 여러 개의 프로세스가 서로 충돌하지 않도록 운영체제가 메모리에 있는 프로세스들을 주의 깊게 관리해야 한다. 꼭, 멀티프로그래밍 환경에서는 한순간에 여러 개의 프로세스가 동작할 수 있기 때문에 프로세스가 실행되면 준비 상태에서 대기하다가 운영체제에 의해 선택되면 실행되고 실행을 마치면 종료하게 된다. 또한, 이들이 있는 메모 리의 위치를 추적하기 위해 메모리 관리도 수행해야 한다.
(1) 프로세스의 상태
∙ 생성 : 프로세스가 생성 중인 상태. 프로그램이 처음 실행될 때를 의미
∙ 준비 : 프로세스가 생성되어 실행할 수 있는 상태로서 CPU를 할당받기 위해 기다리는 중
∙ 실행 : CPU를 할당받아 프로세스가 실행되고 있는 상태
∙ 대기 : 임의의 자원을 요청한 후 할당 받을 때까지 기다리고 있는 상태. 필요한 자원을 할당받으면 다시 준비상태로 전이
∙ 종료 : 실행이 종료된 상태
'컴퓨터 구조' 카테고리의 다른 글
소프트웨어 - 프로그래밍 (0) | 2023.01.01 |
---|---|
소프트웨어 - CPU 스케줄링 (0) | 2023.01.01 |
소프트웨어 (0) | 2023.01.01 |
병렬처리 컴퓨터 (0) | 2022.12.28 |
입력 및 출력 - 인터럽트 서비스 루틴 (0) | 2022.12.28 |
댓글