운영체제는 컴퓨터 시스템의 핵심 소프트웨어로서 하드웨어와 응용 프로그램 간의 중간 역할을 한다. 인터페이스를 제공하고, 컴퓨터 자원을 효율적으로 관리하며, 사용자 및 응용 프로그램에 서비스를 제공하는 소프트웨어 시스템이다. 이를 통해서 하드웨어의 복잡성을 숨기고 효과적으로 컴퓨터를 사용할 수 있다. 다양한 운영체제가 존재하며, 그중에서도 윈도우, 리눅스, macOS 등이 널리 사용되고 있다.
- 자원 관리: 운영체제는 하드웨어 자원(중앙 처리 장치, 메모리, 디스크, 네트워크 등)을 관리하고, 다양한 응용 프로그램 및 프로세스 간에 공정한 자원 분배를 담당한다. 이를 통해 시스템 자원의 효율적인 활용을 보장한다.
- 프로세스 관리: 프로세스는 실행 중인 프로그램을 나타내며, 운영체제는 프로세스를 생성, 스케줄링, 일시 중지, 종료 및 관리한다. 추가로 다중 프로세스 환경에서 프로세스 간의 협력과 통신도 지원한다.
- 메모리 관리: 운영체제는 메모리를 관리하여 프로세스가 메모리를 할당받고 사용할 수 있도록 한다. 이는 가상 메모리, 페이지 교체, 메모리 보호 등을 포함한다.
- 파일 시스템 관리: 파일 시스템을 통해 데이터를 저장하고 관리한다. 운영체제는 파일 생성, 읽기, 쓰기, 삭제, 보안 및 권한 관리 등을 담당한다.
- 입출력 관리: 입출력 장치(키보드, 마우스, 프린터, 디스크 등)와의 상호 작용을 관리하고, 입출력 요청을 스케줄링하여 처리한다.
- 사용자 인터페이스: 운영체제는 사용자와 컴퓨터 간의 상호 작용을 가능하게 하는 그래픽 사용자 인터페이스(GUI) 또는 명령줄 인터페이스(CLI)를 제공한다.
- 보안 및 권한 관리: 시스템의 안전성을 보장하기 위해 접근 권한 및 보안 정책을 관리하고, 사용자 및 프로세스 간의 보안을 유지한다.
- 네트워크 관리: 네트워크 연결과 통신을 관리하여 다른 시스템과의 데이터 교환을 지원한다.
- 오류 처리와 회복: 시스템 및 응용 프로그램에서 발생하는 오류와 장애에 대한 처리와 회복 기능을 제공한다.
- 시스템 성능 모니터링: 운영체제는 시스템 자원 사용량, 성능 통계 등을 모니터링하여 시스템 성능을 최적화하고 문제를 진단한다.
당연하게 썻던 운영체제인데 내가 개발을 하면서 이게 어떻게 돌아가는지 왜 쓰는지 알고 있어야겠다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
23.09.07 깃허브 액션스(GitHub Actions) (0) | 2023.09.12 |
---|---|
23.09.05 캐시(cache) (0) | 2023.09.11 |
23.09.03 스웨거(Swagger) (0) | 2023.09.09 |
23.09.02 테스트 코드 (Test Code) (0) | 2023.09.09 |
23.09.01 동기적 처리와 비동기적 처리 (0) | 2023.09.08 |