操作系统——进程

冯诺伊曼体系结构

现代计算机的五大硬件单元:输入,输出,存储器,运算器,控制器
**重点:**所有的设备都是围绕存储器工作的,也就是说cpu要处理数据只能先把数据放到内
存,然后从内存中取数据进行处理

操作系统

搞管理的软件,管理计算机上的软硬件资源
**重点:**1.管理:先描述,再组织的管理思路
2.系统调用接口:操作系统向外提供的访问内核的接口
3.库函数与系统调用接口的关系:封装调用

进程概念

进程就是运行中的程序,在操作系统的角度,进程就是操作系统对程序运行的动态描述(程序是死的,是一对指令和数据放置在硬盘上,运行程序的时候,操作系统首先要将硬盘上的程序加载到内存中,然后通过一些描述信息让程序运行起来eg.cpu要处理什么指令,处理导论哪里,正在处理什么数据) 叫做pcb(进程控制块)在linux下就是一个task_struct结构体
**描述信息:**标识符,内存指针,程序计数器,上下文数据,状态信息,优先级信息…
**cpu的分时机制:**计算机上cpu只有一个,但是要想同时运行多个程序,就采用cpu分时机 制,操作系统进行运行调度管理,让每个程序在cpu上只运行一个时间片(很短的一个时间段),完毕后,就调度另一个程序在cpu上运行处理

进程状态

描述一个进程什么时候能够干什么事情
就绪—进程拿到是时间片就能运行
运行—正在cpu上处理运行
阻塞—未满足一定条件的情况下不被调度执行

linux下的进程状态

运行—正在运行或者拿到时间片就能运行,或者说程序处于运行状态才能被cpu调度执行
可休眠中断—可以被打断开始执行的一种阻塞状态
不可休眠中断—不可以被打断,只能条件满足自然唤醒的一种阻塞状态
停止什么都不干(休眠时正在休眠)
僵尸状态—一种待处理状态,描述的时一个进程退出了但是资源没有完全被释放的状态

僵尸进程—一种处于僵尸状态的进程
危害:资源泄露
产生:子进程先于父进程退出,但是父进程没有处理子进程的退出,导致操作系统 无法完全释放资源,子进程处于待处理的状态
避免:进程等待
孤儿进程—父进程先于子进程退出,子进程成为孤儿进程运行在后台,父进程成为1号进程(孤儿进程退出不会成为僵尸进程,因为它的退出会被1号进程直接处理)
**守护进程(精灵进程)**特殊的孤儿进程,不但运行在后台,父进程成为1号进程,并且还与登录终端以及会话脱离关系(为了让一个进程稳定不受影响的运行在后台)

进程的创建

1.进程就是pcb,创建一个进程就是创建一个pcb,linux下就是个task_struct结构体
2.因为pcb在内核中,由内核进程进程管理,用户程序无法直接访问内核,只能通过系统调用接口完成功能
3.pid_t fork(void)—创建子进程
4.以复制父进程的方式创建子进程(子进程pcb中很多信息都是从父进程pcb中复制过来的),代码共享,数据独有
5.父子进程运行的代码都是一样的,以及运行的位置都是一样的(内存指针,程序计数器,上下文数据都是从父进程复制过来的,因此在内存中找到的代码是同一份)
6.fork函数,对于父进程返回的是子进程的pid是大于0的,对于子进程来说返回值是0,可以通过返回值对父子进程进行封边进行代码分流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值