응용프로그램 또는 사용자가 컴퓨터 하드웨어를 편리하고 효율적으로 사용하게 하기 위하여 시스템 자원(메모리, 프로세서 등)을 관리하고 여러가지 프로그램이 필요로 하는 공통적인 서비스를 제공하는 소프트웨어
처리능력 향상, 반환 시간 단축, 사용 가능도 향상, 신뢰도 향상 등
효율적인 자원 관리
안정적인 자원 보호
확장성 높은 하드웨어 인터페이스 제공
편리한 사용자 인터페이스 제공
메인프레임(mainframe, 큰 쇳덩이를 의미하는 빅 아이언/big iron으로 부름[1]) 또는 대형 컴퓨터는 통계 데이터나 금융 관련 전산업무, 전사적 자원 관리와 같이 복잡한 작업을 처리하는 컴퓨터이다.
이 용어는 원래 초기 컴퓨터들의 중앙 처리 장치와 메인 메모리를 갖춘 "메인 프레임"이라 불리는 대형 캐비넷들을 지칭하였다.[2][3] 나중에, 이 용어는 전력이 덜 드는 단위의 고급형 상용 머신들과 구별하기 위해 사용되었다.[4] 대부분의 대형 컴퓨터 시스템 아키텍처들은 1960년대에 성립되었지만 계속 발전하고 있다.
[출처] 위키백과 : https://ko.wikipedia.org/wiki/%EB%A9%94%EC%9D%B8%ED%94%84%EB%A0%88%EC%9E%84
메인 프레임은 대형 컴퓨터로 주로 큰 단체에서 연구나 조사를 목적으로 사용하는 컴퓨터이다. 초기 메인 프레임은 초기 컴퓨터의 대형 본체를 일컫는 단어였으나, 기술의 발전으로 본체가 소형화되면서 대형 컴퓨터를 의미하는 단어로 변화하였다.
메인 프레임에서는 초기 운영체제(운영체제라고 불릴 수 없는 단순 프로그램 실행 시스템)인 배치 시스템을 통해 프로그램을 실행시켰다. 메인 프레임은 동시에 하나의 프로그램만을 실행시킬 수 있고 그 프로그램이 종료되길 기다리다가 다음 프로그램을 실행시키는 방식으로 사용했다. 배치 시스템은 이처럼 프로그램이 끝나기를 기다리고 다음 실행시킬 프로그램을 메모리 영역에 올리는 역할을 하는 시스템이었기 때문에 Resident monitor라고 불렸다.
CPU가 프로그램의 명령어를 실행하다가 disk에서 데이터를 읽어오도록 I/O 장치에 요청하게 되면 CPU는 데이터 읽기가 끝날 때까지 기다려야 하기 때문에 CPU 자원이 낭비된다는 단점이 존재했다.
이 단점을 보완하기 위해 이후 여러 시스템이 동작했다.
(이후에 공부할 내용)
https://haun25ne.tistory.com/33
https://hellouz818.tistory.com/6
커널은 OS의 모든 부분에 대한 기본 서비스를 제공하는 컴퓨터 운영체제의 핵심이자 가장 중요한 부분이며 컴퓨터에 속한 자원들에 대한 접근 중재
(이후에 보충 공부 하자!)
유저 모드와 커널 모드는 모드 비트(mode bit)를 통해 구분되며, 이 비트가 1이면 유저모드, 0이면 커널 모드를 가리킵니다.
모드를 구분하는 이유는 I/O protection을 위함입니다.
보통 프로그램 코드가 실행되는 것은 유저 모드이고, 프로그램을 수행하다가 인터럽트에 걸려 운영체제가 수행될 때는 비트를 1로 변경시켜 커널모드로 전환합니다.
예를 들어, 프로그램을 실행하는데 파일을 읽거나 디스크에 쓰기 동작을 하는 경우 CPU는 직접 읽기/쓰기 동작을 실행하지 않고 운영체제에 요청(system call)을 보냅니다. 그럼 운영체제는 I/O 장치에 명령을 내리고 그 결과를 CPU에게 반환합니다.
이처럼 운영체제만 입출력에 접근 가능하도록 제한하기 위해 모드를 구분합니다.
(추가로 system call, interrupt 공부하기)
사용자 모드에 있는 프로그램이 시스템 함수를 직접 호출할 수 없으므로 따로 프로그램이 커널 호출을 요청하는 시스템을 만들어서 커널이 처리해야할 일을 프로그램으로부터 받아서 처리