An operating system is software that manages the computer hardware, as well as providing an environment for application programs to run.Perhaps the most visible aspect of an operating system is the interface to the computer system it provides to the human user.For a computer to do its job of executing programs, the programs must be in main memory.Main memory is only large storage area that the processor can access directly.It is an array of words or bytes, ranging in size from millions to billions.Each word in memory has its own address.The main memory is usually a volatile storage device that loses its contents when power is turned off or lost.Most computer systems provide secondary storage as an extension of main memory.Secondary storage provides a from of nonvolatile storage that is capable of holding large quantities of data permanently.The most common secondary-storage device is a magnetic disk, which provides storage of both programs and data.The wide variety of storage systems in a computer system can be organized in a hierarchy according to speed and cost.The higher levels are expensive, but they are fast.As we move down the hierarchy, the cost per bit generally decreases, whereas the access time generally increases.There are several different strategies for designing a computer system.Uniprocessor systems have only a single processor, while multiprocessor systems contain two or more processors that share physical memory and peripheral devices.The most common multiprocessor design is symmetric multiprocessing (or SMP), Where all processor are considered peers and run independently of one another.Clustered systems are a specialized form of multiprocessor systems and consist of multiple computer systems connected by a local area network.To best utilize the CPU, modern operating systems employ multiprogramming, which allows several jobs to be in memory at the same time, thus ensuring that the CPU always has a job to execute.Time-Sharing systems are an exten-sion of multiprogramming wherein CPU scheduling algorithms rapidly switch between jobs, thus providing the illusion that each job is running concurrently.The operating system must ensure correct operation of the computer system.To prevent ser programs from interfering with the proper operation of the system, the hardware has two modes: user mode and kernel mode.Various instructions (such as I/O instructions and halt instructions) are privileged and can be executed only in kernel mode.The memory in which the operating system resides must also be protected from modification by the user.A timer prevents infinite loops.These facilities (dual mode, privileged instructions, memory protection, and timer interrupt) are basic building blocks used by operating systems to achieved correct operations.A process (or job) is the fundamental unit of work in an operating system.Process management includes creating and deleting processes and providing mechanisms for processes to communicate and synchronize with each other.An operating system manages memory by keeping track of what parts of memory are being used and by whom.The operating system is also responsible for dynamically allocating and freeing memory space.Storage space is also managed by the operating system;this includes providing file system for representing files and directories and managing space on mass-storage devices.Operating systems must also be concerned with protecting and securing the operating system and users.Protection measures are mechanisms that control the access of processes or users to the resources made available by the computer system.운영 체제는 컴퓨터 하드웨어를 관리하는 소프트웨어뿐만 아니라 실행하는 응용 프로그램에 대한 환경도 제공합니다.아마 운영 체제의 가장 눈에 띄는 면은 인간 사용자에게 제공하는 컴퓨터 시스템의 인터페이스입니다.실행 프로그램의 작업을 하기 위해 컴퓨터 프로그램은 메인 메모리에 있어야합니다.메인 메모리는 프로세서가 직접 접근 할 수있는 큰 저장 공간입니다.그것은 수백만에서 수십억까지 다양한 크기의 워드 또는 바이트 배열입니다.메모리의 각 워드는 자신의 주소를 가지고 있습니다.메인 메모리는 일반적으로 전원이 꺼져 있거나 손실 된 경우 그 내용을 잃는 휘발성 저장 장치입니다.대부분의 컴퓨터 시스템은 메인 메모리의 확장으로, 보조 스토리지를 제공합니다.보조 저장 장치는 영구적으로 대량의 데이터를 저장할 수있는 비 휘발성 스토리지에서 제공하고 있습니다.가장 일반적인 보조 저장 장치는 두 프로그램의 데이터 스토리지를 제공하는 자기 디스크입니다.컴퓨터 시스템의 스토리지 시스템의 다양한 속도와 비용에 따라 계층 구조로 구성 할 수 있습니다.높은 수준은 비싸지만 빠르다.우리는 계층 아래로 갈수록 액세스 시간은 일반적으로 증가 한편, 비트 당 비용은 일반적으로 감소했다컴퓨터 시스템 설계를위한 몇 가지 전략이 있습니다.멀티 프로세서 시스템에서는 실제 메모리와 주변 장치를 공유하는 두 개 이상의 프로세서를 포함하는데 반해 단일 프로세서 시스템에서는 단일 프로세서를 가지고 있습니다.가장 일반적인 멀티 프로세서 설계는 모든 프로세서가 peers가 서로 독립적으로 실행되는 대칭형 멀티 프로세싱 (또는 SMP)입니다.클러스터 시스템은 멀티프로세서 시스템의 특수 형태이며, 로컬영역 네트워크로 연결된 여러 컴퓨터 시스템으로 구성되어 있습니다.가장 CPU를 활용하기 위해 현대적인 운영 체제는 여러 작업이 CPU에 항상 실행할일이 있도록 메모리에 동시에 할수있는 멀티프로그래밍을 사용한다.시분할시스템은 어떤점에서 멀티프로그래밍의 확장이다 CPU 일정 알고리즘을 각작업이 빠르고 동시에 실행되는 착각을 제공한다.운영 체제는 컴퓨터 시스템의 올바른 작동을 확인해야합니다.시스템의 적절한 작동을 방해 버리는 프로그램을 방지하기 위해 하드웨어는 두 가지 모드가 있습니다 : 사용자 모드와 커널 모드.다양한 방법 (입출력 방법 및 중단 지시 등) 특권이며 커널 모드에서 실행 할 수 있습니다.운영 체제가 포함되어있는 메모리는 사용자가 수으로부터 보호해야한다.타이머는 무한루프를 방지한다.이러한 시설 (듀얼 모드 , 권한지시 메모리 보호 , 타이머 인터럽트)가 올바른 작업을 달성하기 위해 운영 체제에서 사용되는 기본 building blocks입니다.