# 操作系统基础
本部分是一些基础的概念,仅做了解使用。
# 什么是操作系统
操作系统(Operating System),是介于硬件资源和应用程序之间的一个系统软件 ,能控制和管理整个计算机系统的硬件和软件资源,调度计算机的工作与资源的分配,进而为用户和其他软件提供服务,操作系统是计算机系统中最基本的系统软件。
如果将它理解为“掌控计算机的系统”是否更能精确的描述OS所做的事情呢?
如果要更深入的掌握这个问题,可以问一问:如果没有了操作系统,你使用的PC机还能干什么?或者说,你能够使用你的PC机做什么呢?
# 操作系统的特征:
- 并发:并发指的是两个或多个事件在同一时间间隔内发生,计算机系统中同时存在多个运行的程序,因此具有处理和调度多个程序同时执行的能力。
⚠️注意:并行和并发的区别:并发指的是同一时间间隔,并行指的是同一时刻。
- 共享:系统中的资源可以供内存中多个并发执行的进程共同使用。
- 互斥共享:一段时间内只允许一个进程访问该资源。一段时间内只允许一个进程访问的资源称为临界资源。
- 同时访问:一段时间内允许多个进程“同时”访问,“同时”通常是宏观的,实际上是交替的对该资源进行访问。
- 虚拟:把一个物理上的实体变为若干逻辑上的对应物。
- 异步:进程的执行并不是一贯到底的,而是以不可预知的速度向前推进。
# 操作系统的功能
操作系统位于硬件资源之上,管理硬件资源; 应用程序之下,为应用程序提供服务,同时管理应用程序
1、资源分配,资源回收
计算机必要重要的硬件资源无非就是 CPU、内存、硬盘、I/O设备。 而这些资源总是有限的,因此需要有效管理,资源管理最终只有两个问题:资源分配、资源回收。
资源分配: 体现在CPU上,比如进程调度,多个进程同时请求CPU下,应该给哪一个进程呢?再比如内存分配,内存不够了怎么办?A进程非法访问了B进程的内存地址怎么办?内存内、外碎片问题等。
资源回收: 考虑内存回收后的合并等等。
2、为应用程序提供服务
操作系统将硬件资源的操作封装起来,提供相对统一的接口(系统调用)供开发者调用。
如果没有操作系统,应用程序将直接面对硬件,除去给开发者带来的编程困难不说,直接访问硬件,使用不当极有可能直接损坏硬件资源。
3、管理应用程序
即控制进程的生命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。
4、操作系统内核的功能
(1)进程调度能力: 管理进程、线程,决定哪个进程、线程使用CPU。
(2)内存管理能力: 决定内存的分配和回收。
(3)硬件通信能力: 管理硬件,为进程和硬件之间提供通信。
(4)系统调用能力: 应用程序进行更高限权运行的服务,需要系统调用,用户程序和操作系统之间的接口。
# 操作系统的角色
1、管理者
主要分为:CPU管理、内存管理、外存管理、IO管理;以及自己的健壮性和安全性管理。
健壮性,又称鲁棒性,即使很粗鲁的对待程序,它还是可以很好的运行。
2、魔术师:
比如操作系统会让每个进程都觉得自己独占CPU、独占整片物理内存,而实际上每个进程都只是在某一时间段内占用CPU,仅仅只是占用实际一点点物理内存。
# 用户程序与操作系统的关系
用户程序和操作系统之间是相互调用的关系
1、操作系统的角度
计算机启动后启动的第一个软件就是操作系统,随后启动的所有进程都运行在操作系统之上,使用操作系统提供的服务,同时被操作系统监控,进程结束后也由操作系统回收。
2、进程角度
调用操作系统提供的服务,实现自己的功能。
评论
验证登录状态...