操作系统原理

操作系统

在早期想要让计算机系统执行程序就得要参考一堆硬件功能函数,并且要学习机器语言才能编写程序。同时每次写程序时都必须重新改写,因为硬件与软件功能不见得都一致。如果能够将所有的硬件都驱动,并且提供一个开发软件的参考接口来给工程师开发软件的话,那开发软件就变得很简单了,这就是操作系统的功能。

操作系统内核(kernel)

操作系统其实就是一组程序,该组程序的重点就是让计算机的所有活动以及驱动系统中的所有硬件。计算机没有软件的话就是一堆废铁,而操作系统的功能就是让CPU可以判断逻辑与计算数值,让内存可以加载/读出数据与程序代码,让硬盘可以开始被访问,让网卡可以传输数据,让所有周边可以开始运转等。这些功能就是操作系统的内核了,计算机能不能做到某些事情,都与内核有关,内核程序所放置到内存当中的区块是受保护的,并且开机后一直常驻在内存当中。

系统调用(system call)

因为硬件是由内核管理的,所以如果要开发软件的话,就需要参考内核的相关功能,因此,操作系统通常会提供一整组的开发接口给工程师来开发软件,工程师只要遵守该开发接口就可以很容易的开发软件了。
计算机系统的相关软硬件绘制成图可以表示为如下:
在这里插入图片描述
计算机系统主要由硬件组成,内核程序主要管理硬件,起着计算机系统资源分配的功能。只要硬件不同(如X86架构和RISC架构的CPU),内核就要进行修改才行。,而内核只会进行计算机系统的资源分配,所以在上面还需要有应用程序的提供,用户才能够操作系统。操作系统除了内核程序之外,通常还会提供一整组开发接口,那就是系统调用层。软件开发工程师只要遵循公认的系统调用参数来开发软件,该软件就能在系统上面运行。所以软件和内核的关系比较大,与硬件关系不大。硬件也与内核有比较大的关系。
操作系统的内核层直接参考硬件规格写成,所以同一个操作系统程序不能够在不一样的硬件架构下运行。
**操作系统只是在管理整个硬件资源,包括CPU、内存、输入输出设备及系统文件。**如果没有其他的应用程序辅助,操作系统只能让计算机主机准备妥当而已
应用程序的开发都是参考操作系统提供的开发接口,所以该应用程序只能在该操作系统上运行而已,不能在其他操作系统上面运行。

内核具有的功能如下:
内核主要是在负责整个计算机系统相关的资源分配与管理,内核主要具有如下功能。
1.系统调用接口(system call interface)
可以方便程序员轻易的与内核的通信,将硬件的资源进一步利用。
2.程序管理
一部计算机可能同时间有很多的工作在等待CPU运算处理,内核这个时候必须要能够控制这些工作,让CPU的资源做到有效的分配才行。另外,良好的CPU调度机制将会有效加快整体系统性能。
3.内存管理(Memory management)
控制整个系统的内存管理,内存控制是非常重要的,因为系统所有的程序代码与数据都必须要先存放在内存当中。通常内核会提供虚拟内存功能。
4.文件系统管理
数据的输入/输出等的工作,还有不同文件格式的支持。
5.设备驱动
硬件的管理是内核主要工作之一,设备的驱动程序就是内核需要做的事情。可将驱动程序编辑成模块。

操作系统和驱动程序:
硬件是在持续的进步,对于比较晚推出的硬件,例如显卡,我们的操作系统当然不认识,那么操作系统如何驱动这块新的显卡?为了解决这个问题,操作系统通常会提供一个开发接口给硬件开发商,让它们可以根据这个接口设计可以驱动他们硬件的驱动程序,如此一来,只要用户安装驱动程序后,自然就可以在他们的操作系统上面驱动这块显卡了。

,操作系统具有五大功能,
1.进程管理(Processing management)
2.内存管理(Memory management)
3.设备管理(Device management)
4.文件系统(File system)
5.网络通讯(Networking)
五大功能。
一.进程管理:程序要在内存中运行,正在运行的程序及其占用的资源(CPU,内存,其他的资源)就叫进程。一个单的CPU同一时刻只能执行一个进程。CPU分配给各个程序的时间称为时间片,即该程序允许运行的时间,
各个程序表面上看是同时运行的,其实不然,每个程序都有自己可以运行的时间片,如果时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程;如果进程在时间片结束前阻塞或结束,则CPU当即进行切换,所以并不会造成CPU的资源浪费。
宏观来看,我们可以同时打开多个应用程序,同时运行。而从微观来看,由于一个CPU一次只能执行一个程序的一部分,于是便给各个程序分配时间片,轮流执行。

进程的状态:
进程有五态:创建态,就绪态,等待态,运行态,终止态。
就绪态:所有其他条件都满足,只差CPU时间片。
等待态:除了CPU时间片外,还需满足其他条件。
运行态:就绪态拿到CPU时间片就进入运行态。
这里写图片描述

二.内存管理:
CPU内部有一个模块MMU(memory management unit),所以即使程序的实际内存如果大于PC的内存,程序内部使用虚拟地址,PC还是可以跑这个程序。
如果没有MMU,程序就只能使用物理地址,所以任何一个内存地址使用错误,都会导致整个系统死掉。

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值