운영체제( OS, Operating System)
사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스로 한정된 메모리나 시스템 자원을 효율적으로 분배하는 시스템 소프트웨어이다.
역할
1.
CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제,자원 할당 및 반환을 관리
2.
메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼마나 할당해야 하는지 관리
3.
디스크 파일 관리 : 디스크 파일을 어떠한 방법으로 보관할지 관리
4.
I/O 디바이스 관리 : 마우스, 키보드와 같이 컴퓨터 간에 데이터를 주고받는 것에 대한 관리
구조
GUI(Graphic User Interface) : 그래픽 사용자 인터페이스를 의미한다. 명령을 입력(CUI)하거나 텍스트 기반의 입력을 하는 것이 아니라, 사용자가 아이콘, 메뉴, 버튼, 창 등의 그래픽 요소를 사용하여 컴퓨터와 상호작용 할 수 있도록 하는 시각적 인터페이스를 말한다.
드라이버 : 하드웨어를 제어하기 위한 소프트웨어
System call
시스템 호출(System Call) : 운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램이 운영체제의 서비스를 받기 위해 커널함수를 호출할 때 사용
유저 프로그램이 I/O 요청으로 트랩을 발동하면 올바른 요청인지 확인 후 유저모드가 시스템 콜을 통해 커널모드로 변환되어 실행, 유저모드에서 파일을 읽지 않고 커널모드로 들어가 파일을 읽고 다시 유저모드로 돌아가 프로그램의 로직을 수행한다. 이 과정을 통해 컴퓨터 자원에 대한 직접 접근을 차단하여 다른 프로그램으로 부터 보호할 수 있다.
modebit : 시스템 콜이 작동될 때 modebit을 참고해서 유저모드와 커널 모드를 구분, 1과 0의 값을 가지는 플래그 변수이다. I/O 디바이스는 운영체제를 통해서만 작동해야 한다. 사용자가 의도하지 않았는데 공격자가 I/O 디바이스를 이용하여 공격하기 쉽기 때문에 이를 쉽게 막기 위해 modebit을 사용한다.
유저모드 : 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
커널모드 : 모든 컴퓨터 자원에 접근할 수 있는 모드
커널 : 운영체제의 핵심 부분으로 시스템콜 인터페이스를 제공하며 보안, 메모리, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할을 한다. 사용자가 System Call을 통해 컴퓨터 자원을 사용할 수 있게해주는 자원 관리자, 직접적인 상호작용은 하지 않는데 상호작용 하기 위해 사용하는 것이 시스템 프로그램 ( Shell )이다.
목적
운영체제의 목적에는 처리능력 향상, 반환 시간 단축, 사용 가능도 향상, 신뢰도 향상 등이 있다. 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다.
1.
처리능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
2.
반환시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
3.
사용가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
4.
신뢰도(Reliabilty) : 시스템이 주어진 문제를 정확하게 해결하는 정도