자원관리에서 가장 중요한 것은 최대 성능을 내는 효율성
하지만 지나치게 차별을 주는 것은 안된다
컴퓨터의 두뇌는 사실 운영체제
CPU는 기계어를 빠르게 실행하는 역할, 판단은 못함
운영체제는 전체적 관리, 판단, 두뇌(통치자) 역할
프로그램마다 메모리를 조금씩 나눠줘야 한다
프로그램 100개 돌아가면 공평히 다 나눠도 어느 누구도 만족 못함
그래서 메모리 관리에서 동시 실행 상황에서 공평히 나눠주는게 아니라,
특정 프로그램 많이 주고 쫓겨나게 할 수도 있다.
충분히 쓰면 I/O를 하러 떠나고 그 다음것이 공간을 차지한다
이렇게 몰아주는게 훨씬 효율적일 수 있다
동시 작업 가능 여부
현대 운영체제는 멀티태스킹 가능
초창기에는 단일 작업만 가능했다
끝내기 전에 시작조차 못시켰음
사용자의 수
처리 방식
일괄 처리(batch processing)
키보드 누르면 바로 화면에 결과가 나오는 것은 일괄처리 아님
작업 요청의 일정량을 모아서 한꺼번에 처리
작업 종료까지 기다려야 한다
적재 > 처리 > 종료 후 출력
시분할(time sharing)여러 작업 수행할 때, 처리 능력을 일정한 시간 단위로 분할해서 사용
키보드 입력하면 결과가 바로 나옴 (지연 없음) > 무척 인터랙티브하다
범용 운영체제는 시분할 시스템이다
*현 수업에서 이야기 하는 것은 다중 사용자 운영체제와 시분할 하는 운영체제 (자원 효율적, 여럿이 행복하자)
실시간(Realtime OS)
정해진 시간 안에 어떤 일의 종료가 보장되어야 한다 > 데드라인이 있다
일반적인 운영체제가 아니다
시간을 어기면 치명적 결과 초래
Hard realtime system (경성 실시간 시스템) : 원자로/공장 제어, 미사일 제어 등
Soft realtime system (시스템 연성 실시간 시스템) : 동영상
위는 모두 컴퓨터 안에서 여러 프로그램을 실행시킬 수 있다는 뜻
아래 하나는 다른 용어
유닉스
리눅스보다 먼저 나온 리눅스 계열 운영체제
큰 서버를 위해 만들어졌다
여러 프로그램, 여러 사용자 관리하기 때문에 굉장히 복잡
기존 운영체제와의 차이
반면, 마소가 만든 운영체제는 개인 사용자를 위해 만든 운영체제
확장을 위해 만들어진 것과 단일작업 운영체제에서 점점 발전해온 것
운영체제를 이해할 때는 내가 운영체제인 것처럼 운영체제 개발자 관점으로 보아야 한다