최대한의 효율로 사용할 수 있도록 OS 레벨에서 CPU를 번갈아가며 할당해주는 것도 중요하다.
한번에 하나의 작업만 처리
예) MS-DOS 프롬포트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없다.
동시에 두 개 이상의 작업 처리
예) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음
여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
interactive한 방식
💡 사용자가 늘어나면 응답 시간의 편차가 날 수도 있다.정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
예) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
⇒ 위의 용어는 유사한 의미로 사용되는 용어들이다.
단 Multipricessor는 CPU가 여러 개를 의미한다.
운영 체제의 역할을 말해봐라
프로세스 관리란?
OS에서 작동하는 응용 프로그램을 관리하는 기능이며, 프로세서를 관리 하는 것이라고 볼 수 있다.
저장장치 관리란?
1차 저장장치와 2차 저장장치를 관리하는 기능이다
FAT , NTFS, EXT2, JFS, XFS 등이 개발되어 사용 중네트워킹이란?
TCP/IP 기반의 인터넷에 연결하는 등 네트워크를 사용하기 위해 OS에서 네트워크 프로토콜 자체를 지원해야 한다.
사용자 관리 기능 이란?
과거에는 하나의 PC를 한 개인이 사용한다는 전제를 두고 OS 를 개발하곤 했지만 (ex. MS-DOS) 현재는 하나의 PC를 여러 사람이 사용하는 경우도 많다(서버) 그러므로 한 컴퓨터의 자원을 여러 사람이 사용하는 환경도 지원해야한다.
따라서 각 계정을 관리할 수 있는 기능이 필요하며, 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근 할 수 없도록 제공해야 하며, 이러한 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능이다.
디바이스 드라이버?
OS는 시스템의 자원과 하드웨어를 관리한다. PC와 시스템에는 여러가지 하드웨어가 붙어 있는데 이 모든 하드웨어를 운영체제에서 인식하고 관리하게 만들기 위한 응용 프로그램이 디바이스 드라이버 이다.
따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요한데. 이 계층을 디바이스 드라이버라고 불리며, 하드웨어의 종류가 많은 만큼 운영체제 내부의 디바이스 드라이버의 종류도 많다.
💡 과거의 랜카드를 생각해보면 좋을듯 하다. 과거에는 컴퓨터를 조립하고 윈도우를 깔았어도, 랜카드 드라이버를 추가적으로 설치해주지 않으면, 메인보드의 랜카드를 인식 못하여 인터넷 접속이 불가능 했었다.프로세스 관리에 대하여 설명해보세요.
프로세스 관리는 크게 4가지로 나뉜다.
프로세스, 스레드
프로세스의 사전적 의미
스레드의 사전적 의미
더 자세한 사항은 이후 프로세스와 스레드에서 더 자세히 다룰 예정
스케줄링
프로세스가 생성되어 실행될때 필요한 시스템의 여러 자원을 해당 프로세스에게 자원을 할당 하는 작업이다.
이러한 스케줄링 방식에는 장기 스케줄링 , 중기 스케줄링 , 단기 스케줄링 이 있다.
더 자세한 사항은 추후에 CPU 스케줄링에서 다룰 예정
동기화(Synchronization)
프로세스나 스레드들이 수행되는 시점을 조절하여 서로 알고 있는 정보가 일치하게 만드는 것을 의미하며, 공유자원에 두 프로세스가 동시에 접근할 때 공유 자원에 대한 선점문제나, 데이터 문제를 해결하는 것을 의미한다.
즉 여러 프로세스가 공유하는 자원들의 일관성을 유지하기 위한 기법들을 의미한다.
이것도 추후에 자세하게 다룰 예정
IPC(Inter Process Communication) 통신
프로세스들끼리 서로 데이터를 주고받은 행위 또는 그에 대한 방법을 뜻한다.
프로세스는 각 실행영역에서 완전히 독립된 실행 객체 이다. 서로 독립 되어 있으므로 다른 프로세스의 영향을 받지 않는다는 장점이 있으나, 독립되어 있는 경우는 다른말로 말하면 고립되어 있다고도 의미한다. 즉 서로간의 통신이 어렵다는 문제가 있다.
커널 의 IPC설비를 이용하여 통신을 할 수 있도록 도와준다.
IPC의 종류
메시지 전달
커널이 제공하는 API를 이용하요 메시지 큐 를 사용하여 통신한다.
메모리 공유
프로세스들끼리 특정 공통의 메모리 영역을 공유하여 상호간 통신한다.
데이터 자체를 공유하도록 지원하며, 이로 인한 공유메모리 접근에 대한 동기화 문제도 발생할 수 있다.