본문 바로가기

컴퓨터공부/정보처리기사

[정보처리기사] 운영체제 역할, 목적, 종류 , Linux , Android

by Life & study 2023. 6. 26.
반응형

[정보처리기사] 운영체제 역할, 목적, 종류 , Linux , Android

[정보처리기사] 운영체제의 역할: , 프로세스와 스레드:,  스케줄링, 메모리 관리:

운영체제의 역할:
자원 관리: 컴퓨터 자원(프로세서, 메모리, 디스크 등)을 효율적으로 관리하고 할당합니다.
프로세스 관리: 프로세스의 생성, 실행, 종료 등을 관리하며, CPU 스케줄링을 통해 프로세스 실행을 조정합니다.
메모리 관리: 메모리 할당, 해제, 가상 메모리 관리 등을 통해 프로세스의 메모리 요구를 처리합니다.
파일 시스템 관리: 파일 및 디렉토리의 생성, 삭제, 접근 등을 관리하고, 파일 시스템의 구조를 유지합니다.
입출력 관리: 입출력 장치의 관리와 입출력 요청을 처리하여 데이터의 흐름을 관리합니다.

 

프로세스와 스레드:
프로세스: 실행 중인 프로그램으로, 운영체제에 의해 관리되는 작업 단위입니다. 각 프로세스는 독립된 메모리 공간을 가지며, 자신의 코드, 데이터, 스택 등을 갖습니다.
스레드: 프로세스 내에서 실행되는 작업 단위로, 프로세스의 자원을 공유하면서 실행됩니다. 스레드는 프로세스 내에서 병렬적으로 실행될 수 있어 작업의 동시성을 지원합니다.

 

스케줄링:
CPU 스케줄링: 다중 프로세스 환경에서 CPU를 효율적으로 할당하기 위한 방법입니다. 스케줄링 알고리즘은 프로세스의 우선순위, 대기 시간 등을 고려하여 CPU를 할당합니다.
디스크 스케줄링: 디스크에 대한 입출력 요청을 효율적으로 처리하기 위한 방법입니다. 디스크 스케줄링 알고리즘은 디스크 헤드의 이동 거리, 대기 시간 등을 고려하여 디스크 요청을 처리합니다.

 

메모리 관리:
메모리 할당: 프로세스에게 메모리를 할당하고, 메모리 공간을 효율적으로 관리합니다. 주요 기법으로는 연속 메모리 할당, 분할 메모리 할당, 가상 메모리 등이 있습니다.
페이지 교체: 가상 메모리 시스템에서 메모리 부족 상황에서 페이지를 디스크로 스왑 하고, 필요한 페이지를 다시 메모리로 가져오는 과정입니다. 주요 알고리즘으로는 LRU(Least Recently Used), FIFO(First-In-First-Out) 등이 있습니다.

운영체제의 주요 목적

처리능력 (Throughput): 운영체제는 시스템의 처리능력을 최대화하기 위해 작동합니다. 이는 시스템이 단위 시간당 처리할 수 있는 작업의 양을 의미합니다. 운영체제는 작업 스케줄링, 자원 할당 및 관리 등을 통해 처리능력을 향상하는 역할을 수행합니다.


반환시간 (Turnaround Time): 운영체제는 작업의 반환시간을 최소화하기 위해 노력합니다. 반환시간은 작업이 시작되고 완료될 때까지 걸리는 시간을 의미합니다. 운영체제는 작업 스케줄링 및 자원 관리를 통해 반환시간을 최적화합니다.


사용가능도 (Availability): 운영체제는 시스템의 사용 가능도를 보장하기 위해 노력합니다. 사용 가능도는 시스템이 사용자에게 제공되는 시간의 비율을 의미합니다. 운영체제는 오류 처리, 장애 복구 및 예방 조치를 통해 시스템의 가용성을 높이는 역할을 수행합니다.


신뢰도 (Reliability): 운영체제는 시스템의 신뢰성을 유지하기 위해 노력합니다. 신뢰도는 시스템이 주어진 기간 동안 정상적으로 작동하는 능력을 의미합니다. 운영체제는 오류 처리, 예외 처리 및 안정성을 향상시키는 기능을 제공하여 시스템의 신뢰도를 높입니다.

 

UNIX에 대해

UNIX

1960년대 AT&벨 연구소가 MIT, General Electric 사와 함께 공동 개발한
운영체제이다.

시분할 시스템을 위해 설계된 대화식 운영체제이다.

대부분 C 언어로 작성되어 있어 이식성이 높으며, 장치, 프로세스간의
호환성이 높다.

트리 구조의 파일 시스템을 갖는다.

 

운영체제의 종류

커널:
커널은 운영 체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 인터페이스 역할을 합니다.
커널은 시스템의 자원을 관리하고, 프로세스 스케줄링, 메모리 관리, 파일 시스템 등의 기능을 담당합니다.
UNIX 커널은 다중 사용자 및 다중 작업 환경을 지원하며, 안정성과 보안성을 강조합니다.

 

쉘 유틸리티 프로그램:
쉘은 사용자와 운영 체제 간의 인터페이스 역할을 하는 프로그램입니다.
사용자는 쉘을 통해 명령어를 입력하고, 운영 체제는 해당 명령어를 실행합니다.
UNIX에는 다양한 종류의 쉘이 있으며, 가장 널리 사용되는 쉘은 "Bourne Shell"과 "Bash (Bourne Again Shell)"입니다.

 

쉘 유틸리티 프로그램은 

사용자가 자주 사용하는 작업을 자동화하고, 파일 및 디렉토리 관리, 프로세스 제어, 텍스트 처리 등의 기능을 제공합니다.
예를 들어, 파일 복사, 디렉토리 생성, 파일 검색, 텍스트 필터링 등의 작업을 쉘 유틸리티 프로그램을 통해 수행할 수 있습니다.

 

Linux

 

리누스 토발즈(Linus Torvalds)는 Linux 운영 체제의 창시자이며, 오픈 소스 소프트웨어 개발자로 잘 알려져 있습니다.

 

Linux는 리누스 토발즈가 1991년에 처음으로 개발한 운영 체제 커널입니다. 리누스 토발즈는 당시에는 개인용 컴퓨터를 위한 운영 체제를 찾고 있었고, UNIX와 유사한 운영 체제를 개발하기로 결정했습니다. 

그 결과로 탄생한 것이 Linux입니다.


Linux는 오픈 소스 소프트웨어로서, 소스 코드가 공개되어 있고 무료로 사용할 수 있습니다. 

이는 개발자들이 Linux 커널을 수정하고 개선할 수 있으며, 다양한 용도에 맞게 커스터마이징 할 수 있다는 장점을 가지고 있습니다. 또한, Linux는 안정성, 보안성, 확장성 등의 특징으로 유명하며, 서버, 개발 환경, 임베디드 시스템 등 다양한 분야에서 널리 사용되고 있습니다.


Linux는 다양한 배포판(Distribution)으로 제공되며, 각 배포판은 Linux 커널과 함께 필요한 소프트웨어, 도구, 라이브러리 등을 포함하고 있습니다. 

 

대표적인 Linux 배포판으로는 Ubuntu, CentOS, Fedora, Debian 등이 있습니다.


리누스 토발즈의 Linux는 오픈 소스 운동과 커뮤니티 기반의 개발 방식을 대표하는 사례로, 현재까지도 전 세계적으로 많은 개발자들과 커뮤니티의 지지를 받고 발전하고 있습니다

 

 

운영체제 android

 

안드로이드(Android)는 Google이 개발한 모바일 운영 체제입니다. 주로 스마트폰과 태블릿과 같은 모바일 기기에서 사용됩니다. 안드로이드는 리눅스 커널을 기반으로 하며, 오픈 소스로 개발되어 있습니다.


안드로이드 운영 체제는 다양한 기능과 서비스를 제공합니다. 몇 가지 중요한 특징은 다음과 같습니다:


사용자 인터페이스: 안드로이드는 사용자 친화적인 인터페이스를 제공합니다. 홈 화면, 앱 아이콘, 위젯 등을 통해 사용자는 쉽게 앱을 실행하고 작업할 수 있습니다.

 

애플리케이션 생태계: 안드로이드는 Google Play 스토어를 통해 수많은 애플리케이션을 다운로드하고 설치할 수 있습니다. 이를 통해 사용자는 다양한 분야에서 유용한 앱을 이용할 수 있습니다.

 

다양한 기기 지원: 안드로이드는 다양한 제조사와 기기에서 사용됩니다. 스마트폰, 태블릿, 스마트워치, 스마트TV 등 다양한 기기에서 안드로이드 운영 체제를 사용할 수 있습니다.

 

다양한 기능과 서비스: 안드로이드는 다양한 기능과 서비스를 제공합니다. 예를 들어, 멀티태스킹, 알림, 카메라, 위치 기반 서비스, 클라우드 연동 등의 기능을 포함하고 있습니다.

 

개발자 친화적: 안드로이드는 개발자들에게 다양한 개발 도구와 API를 제공하여 애플리케이션 개발을 용이하게 합니다. 또한, 안드로이드 앱은 Java, Kotlin 등의 프로그래밍 언어로 개발할 수 있습니다.

 


 

반응형

댓글