再小的努力,乘以365都很明显。
文章目录
- 操作系统
- 操作系统的概念
- 设计操作系统的目的
- 管理 ps:如何理解管理
- 如何进行管理
- 操作系统管理软硬件资源
- 小总结
- 系统调用和库函数的概念
- 小总结
操作系统
在讲述进程的时候我们先讲述一下操作系统(os),因为进程就是被操作系统所管理的。
操作系统的概念
任何计算机系统都包含一个基本的程序集合叫做操作系统,比如说我们买安卓手机会提前安装好安卓系统,苹果的ios,以及微软的windows。
简单的理解操作系统包括
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(列如函数库,shell程序等等)
设计操作系统的目的
其实这个跟我们的生活是息息相关的因为现在计算机已经渗透到我们生活的方方面面了,那么我们在使用一个计算机(手机)的时候我们比较关注的地方不就包括这个手机安不安全啊,流畅不流畅。我身为用户在操作的时候方便不方便。那么我们就可以得出操作系统的作用就是以下两点:
- 为硬件做交互管理好软硬件资源。(我们在使用计算机的时候是否流畅)
- 为用户程序(应用程序)提供一个良好的操作执行环境。(这个手机它安不安全)
说白了操作系统就是一个纯正的搞管理的应用软件
管理 ps:如何理解管理
首先什么是管理,我们在班级里面被老师管理,老师又被领导管理,领导又被更高的领导管理,那么在这里我们首先要明确一个点就是管理是自上而下进行管理的,也就是上层的对下层进行管理。
其次我们在学校里,我们的一切行为准则看似是听老师的,实际上我们听的是谁的?是校长的,但是你见过校长吗?或者说你的校长会因为一个小事就叫你吗?很明显不是的,也就是说第二点那就是上层在对下层做管理的是通过中间人进行的不需要真的见面。
如何进行管理
还是上面的那个列子,在一个学校里一个校长他想管理这个学校的每一个人他是把每一个人都认一边吗?当然不是校长也好老师也好他在管理你的班级的时候其实本质上他是搜集信息对信息做管理,比如说我是个老师我想获得我们班级每个人的成绩,那么我们肯定不是只要一个数字那么简单我们还需要知道,这个学生的名字等等,同理做管理的时候我们都是先对要管理的对象进行描述然后进行组织,从而进行管理
操作系统管理软硬件资源
有了上面对管理的理解后我们再来学习操作系统是如何管理的,那么操作系统在进行管理的时候其实也是先对要管理的对象进行描述然后再进行组织管理。
操作系统在进行管理的时候是用一个结构体这个结构体包含了各种属性,然后将需要管理的对象的各种属性进行描述然后再组织管理.
那么我们上面提到操作系统再管理的时候会先将需要管理的对象用一个结构体进行描述,那么这个结构体是什么呢?这个我们后文会讲到,它的名字叫做pcb。
那么上面说了操作系统的先描述再组织这个特点那么操作系统的另一个特点自上而下进行管理是如何体现的呢?
请看下图
从上图中我们也可以看出来操作系统是属于软件的一种,他对上给用户提供操作接口对下管理软硬件资源,并且在管理软硬件资源的同时它本身也是一个软件。
小总结
计算机管理硬件
先描述起来
组织起来用链表或者更高效的数据结构进行管理
系统调用和库函数的概念
在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分
由操作系统提供的接口,叫做系统调用
关于系统调用和库函数上面的那张图片大家可以看一下我们发现系统调用接口我们可以到但是函数库是那一层呢?我们不知道。
这里我给大家举一个列子:比如说你是你们学校的一个技术非常牛逼的大佬。但是你的隔壁学校呢没有你这么牛的人,于是就想让你帮助他们出去打acm比赛。那么这个学校的校长如果直接找你说这个事情你觉得合适吗?肯定不合适因为你不是他们学校的,你有你的管理者对方学校直接越过你们学校的校长来找你,这肯定不行因为你的校长肯定要对你负责你的一切消息他都要了解到,所以对方不能直接越过你的校长来找你,肯定是先找你的校长之后你的校长再找你。
那么通过上面的例子我们带入一下,假如说printf()函数就是对方学校的校长,printf()函数想在电脑上打印一个东西他能直接越过操作系统去找电脑硬件设备吗?肯定不行因此我们可以知道,库函数是属于操作系统之上的,并且结合上面系统调用的概念可以知道库函数肯定也不是系统调用那一层的因此可以知道库函数属于用户操作接口。
小总结
1.在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分
由操作系统提供的接口,叫做系统调用。
2.系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统
调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。