当前位置: 首页> 财经> 产业 > 操作系统与进程简单介绍

操作系统与进程简单介绍

时间:2025/7/14 20:01:24来源:https://blog.csdn.net/qq_62959026/article/details/140882405 浏览次数:0次

操作系统与进程

    • 操作系统
    • 进程

操作系统

上一篇博客中介绍了操作系统到底层硬件它们之间的一个关系,那么还是这张图
在这里插入图片描述
操作系统到用户它们之间的关系又是如何的呢?
又回到了最根本的问题上:为什么要有操作系统呢?

1、向下管理好软硬件资源(手段)
2、向上提供一个良好的运行环境(目的)

因为用户不能直接访问操作系统,因为可能会对数据造成一些影响,所以就由操作系统来提供一层系统的调用接口,然后再把系统调用接口封装一层让用户通过库或者一些指令来 调用,那为什么又要封装一层呢?
我们知道printf这个函数吧,它既可以直接在windows的vs中运行又可以在linux中运行,是为什么呢?答案是:这个库函数是封装了不同系统的调用接口来实现的,所以我们并不需要说明我们在windows/linux平台就可以使用,因为它本身就封装好了对应的系统调用接口,那么这些语言的跨平台性相信大家也就能理解了。

系统调用和库函数概念

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分 由操作系统提供的接口,叫做系统调用。

系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统
调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

下面我们来简单谈一谈进程:

进程

我们所了解到的进程是什么呢?很多地方定义进程:加载到内存中的程序/正在运行中的程序。
其实并不正确。
事实上:我们可以启动多个程序&&操作系统要管理多个加载到内存中的程序&&操作系统管理程序的方式
从这三个问题来谈:操作系统要管理如此之多的从硬盘加载到内存中的程序,如何实现的呢?还是:先描述再组织
那么如何来描述这些进程呢?
进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。称为PCB(Process Control Block)进程控制块。在Linux中是用task_struct。
它里面包含着:

标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
其他信息。

当这些程序加载到内存的时候,操作系统就会生成一个PCB对象里面包含上述对应程序的基本信息,除此之外还包含一个next指针,画一个图来看就是这样的:在这里插入图片描述
每个PCB对应它的程序,并且这些PCB通过next指针链接起来,从此之后操作系统的所有决策都是对PCB的,通过PCB里面的一系列存放的内容找到对应的程序,和程序本身无关。
所以什么是进程呢?进程=内核中PCB对象+可执行程序=内核数据结构+可执行程序事实上PCB就是一个数据结构。

OK,了解了什么是进程后我们在Linux中来查看一下进程呢,在这里插入图片描述
输入ps ajx这个指令可以看到左边的两列PPID PID分别是父进程的id和子进程的id,每一个进程都有一个id用来进行区分,每一个普通的进程一般都有父进程,这个之后再谈。

并且我们还可以通过代码看到
在这里插入图片描述
在这里插入图片描述
每一次启动这个程序,子进程id是会改变的而父进程不会改变。

——————————————————————————————————————————————————————
以上就是关于操作系统的补充以及进程的简单介绍,如有错误,欢迎指正,谢谢大家!

关键字:操作系统与进程简单介绍

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: