운영체제란?
운영체제는 컴퓨터 시스템의 *자원들을 효율적으로 관리하며,
사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다.
*자원 : CPU, 주기억장치, 보조기억장치, 프린터, 파일 및 정보등을 의미한다.
* 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로,
다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.
대표적인 운영체제 종류
- Windows: Microsoft에서 개발한 운영체제로, 사용자 친화적인 GUI와 다양한 소프트웨어 호환성을 제공한다.
- macOS: Apple에서 개발한 운영체제로, 고유의 그래픽 사용자 인터페이스와 뛰어난 보안 및 안정성을 제공한다.
- Linux: 오픈 소스 운영체제로, 서버와 개발 환경에서 많이 사용되며, 다양한 배포판이 존재한다(예: Ubuntu, Fedora, Debian).
- UNIX: 고대의 운영체제이지만, 현재도 많은 서버 및 기업 환경에서 사용되고 있으며, Linux와 매우 유사하다.
운영체제 목적
1. 처리 능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양 (처리량 혹은 전송량)
2. 반환 시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸리는 시간이다
3. 사용 가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 (가용성 혹은 유효성)
4.신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
운영체제 주요 기능
프로세스 관리 :
프로세스는 실행 중인 프로그램을 의미하며, 운영체제는 여러 프로세스가 동시에 실행되는
멀티태스킹 환경을 관리한다.
프로세스 생성 및 종료 : 새로운 프로세스가 CPU 자원을 효율적으로 공유하도록 스케줄링을 한다
프로세스 스케줄링 : 여러 프로세스가 CPU 자원을 효율적으로 공유하도록 스케줄링을한다
프로세스 동기화 및 통신 : 여러 프로세스가 협력할 때 발생할 수 있는 충돌을 방지하고,
서로 통신할 수 있는 메커니즘을 제공한다.
메모리 관리 :
메모리 할당 : 각 프로세스에 메모리를 할당하고, 종료된 프로세스의 메모리를 반환한다.
가상 메모리 : 실제 RAM 용량보다 더 많은 메모리를 사용할 수 있도록 하드 디스크의 일부를 가상
메모리로 활용한다. (시스템 효율성)
페이지 관리 : 가상 메모리에서 데이터를 페이지 단위로 관리하고, 필요한 페이지를 물리적 메모리로 가져온다.
파일 시스템 관리 :
파일의 생겅, 삭제, 읽기, 쓰기 등의 작업을 관리한다.
파일 저장소 제공 : 데이터를 파일 형식으로 저장하고, 파일을 효율적으로 찾을 수 있도록 디렉토리 구조를 관리한다.
파일 접근 제어 : 파일에 대한 접근 권한을 설정하여 사용자가 파일을 안전하게 사용할 수 있도록 한다.
파일 입출력 : 파일과 디스크 간의 데이터 전송을 담당한다.
입출력 시스템 관리 :
컴퓨터의 다양한 입출력 장치(키보드, 마우스, 모니터, 프린터 등)와의 상호 작용을 관리한다.
드라이버 관리 : 각 입출력 장치와 CPU 간에 효율적으로 전달하기 위해 임시 저장소를 사용한다.
버퍼링 및 캐싱 : 데이터를 입출력 장치와 CPU 간에 효율적으로 전달하기 위해 임시저장소를 사용한다.
장치 제어 : 장치의 상태를 모니터링하고, 장치가 잘 작동하도록 제어한다.
사용자 인터페이스 (User Interface, UI)
운영체제는 사용자와 컴퓨터 간의 상호작용을 위한 인터페이스 제공
명령줄 인터페이스 (CLI): 사용자가 텍스트 명령어를 입력하여 시스템을 제어하는 방식이다.
예시: Unix의 쉘, Windows의 명령 프롬프트.
그래픽 사용자 인터페이스 (GUI): 아이콘, 버튼, 메뉴 등의 그래픽 요소를 통해
직관적으로 시스템을 조작할 수 있는 방식이다. 예: Windows, macOS, Linux의 GNOME, KDE 등.
보안 및 권한 관리 :
사용자 인증 : 사용자 이름과 비밀번호를 통해 사용자를 인증하고, 사용자 권한을 설정한다.
암호화 : 데이터의 기밀성을 보장하기 위해 데이터를 암호화하고, 저장된 데이터를 보호한다
권하 관리 : 파일 및 리소스에 대한 접근 권한을 설정하여, 사용자가 특정 자원에 접근할 수 있는 지 결정
네트워킹 (Networking)
운영체제는 네트워크 연결을 관리하고, 데이터가 네트워크를 통해 전달될 수 있도록 지원
시스템 성능 관리 (System Performance Management)
운영체제는 시스템 자원의 효율적인 사용을 위해 성능을 모니터링하고 최적화합니다
다중 사용자 및 다중 작업 지원
운영체제는 여러 사용자가 동시에 시스템을 사용할 수 있게 하며, 동시에 여러 작업을 실행할 수 있도록 지원한다: