왜 리눅스 마스터 1급을 목표로 공부하는가?
- 리눅스 마스터 1급 자격증을 공부하며 운영체제 CS 지식을 다시 복습하고 싶다.
- 프로젝트 시 클라우드 환경에서 리눅스를 다룰 일이 많았다. 서버 개발자로서 꼭 필요한 지식이라 생각한다.
- 운동 하러가거나, 뭔가 이동할 때 공부할 게 마땅한 게 없었다.
Spring Framework를 공부하려니 좀 더 각잡고 구글링 해가면서 공부하고 싶고,
알고리즘을 푸는 건 말이 안되서... 뭔가 붕 뜨게 되는 시간이 싫었다.
- SQLD와 정보처리기사를 따면서 느꼈던 것은
은근히 자격증을 통해 얻게되는 지식이 쓸모가 많이 있었다는 것이었다.
또한 많은 사람들이 응시하다보니 관련 강의들이 유튜브에 많이 올라와있었고, 퀄리티 또한 괜찮았다.
- 보다 더 근본있는 개발자가 되고
기술면접 내용을 대비하는데 좋은 자격증인 것 같아서 공부하려 한다.
1. 운영체제의 개요
- 운영체제의 정의
- 사용자가 하드웨어 간의 상호작용을 위해
사용자 인터페이스(User Interface)를 제공하는 시스템 소프트웨어
- 컴퓨터의 중앙처리장치(CPU : Central Processing Unit),
메모리 및 주변 장치 등 하드웨어를 효율적으로 관리한다.
- 응용 프로그램이 동작할 수 있는 환경,
즉 프로그래밍 인터페이스를 제공한다.
- 운영체제의 목적
- 일정 시간 동안 처리하는 일의 양을 의미하는
처리능력(Throughput)의 향상을 목적으로 한다.
- 작업 의뢰 후 시스템에서 결과가 얻어질 때까지의 시간을 의미하는
반환시간(Turnaround Time)의 최소화를 목적으로 한다.
- 주어진 문제를 정확하게 처리하는 정도를 뜻하는
신뢰도(Reliability)의 향상을 목적으로 한다.
- 이용할 수 있는 시스템의 자원이 어느정도인가를 의미하는
사용 가능도(Availability)의 향상을 목적으로 한다.
- 운영체제의 역할
- 사용자의 하드웨어 접근이 용이하도록
운영체제가 하드웨어 제어, 입력, 출력 등의 관리를 수행한다.
- 한정된 하드웨어 자원을 다수의 이용자가 공유할 수 있는 기능을 수행한다.
- 프로세스, 메모리, CPU 등의 한정된 자원의 용량을 효율적으로 사용하기 위하여
자원 스케줄링을 제공한다.
- 응용 프로그램의 작성과 실행이 편리하도록
시스템 호출(system call)을 제공한다.
- 예상치 못한 오류가 발생하더라도, 시스템을 중단하지 않고 실행할 수 있도록
오류 복구 기능을 제공한다.
- 사용자의 다양하고 수많은 데이터를 조직화하고 저장할 수 있는
파일 관리 및 데이터베이스 기능을 제공하고
원격의 컴퓨터와 연결할 수 있는 네트워크 기능을 제공한다.
- 사용자에게 편리한 사용자 인터페이스를 제공한다.