进程描述(一)

操作系统是什么

操作系统是管理计算机硬件软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
在这里插入图片描述

设计OS的目的
  • 与硬件交互,管理所有的软硬件资源
  • 为用户程序(应用程序)提供一个良好的执行环境
如何理解管理

管理=描述+组织
在这里插入图片描述

系统调用

由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。

操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。

Linux操作系统中系统调用的接口

//系统调用的接口有很多,这里只提一些进程控制的
进程控制
fork 创建一个新进程
clone 按指定条件创建子进程
execve 运行可执行文件
exit 中止进程
_exit 立即中止当前进程
getdtablesize 进程所能打开的最大文件数
getpgid 获取指定进程组标识号
setpgid 设置指定进程组标志号
getpgrp 获取当前进程组标识号
setpgrp 设置当前进程组标志号
getpid 获取进程标识号
getppid 获取父进程标识号
getpriority 获取调度优先级
setpriority 设置调度优先级

库函数

库函数(Library function)是把函数放到库里,供别人使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。库函数是对系统调用的封装,方便程序员去使用。

进程概念

课本概念:程序的一个执行实例,正在执行的程序等。
内核观点:担当分配系统资源(CPU时间,内存)的实体。

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

进程的特征
  • 动态性:是程序的一次执行
  • 并发性:进程是可以并发执行
  • 独立性:是系统进行资源分配和调度的一个独立单位
  • 异步性:进程间的相互制约,使进程执行具有间隙
  • 结构性:进程是具有结构的

程序和进程的区别:

(1)程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;

(2)程序是静态的观念,进程是动态的观念;

(3)进程具有并发性,而程序没有;

(4)进程是竞争计算机资源的基本单位,程序不是。

(5)进程和程序不是一一对应的: 一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序。

描述进程-PCB
  • 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
  • 课本上称之为PCB(process control block),Linux造作系统下的PCB是task_struct

PCB是什么
PCB包含有关进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映。
PCB的作用
1.系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。
2.一个进程的PCB结构都是全部或部分常驻内存的。
PCB的生命周期
在创建一个进程时,首先创建其 PCB,然后根据PCB 中信息对进程实施有效的管理和控制。
当一个进程完成其功能之后,系统释放PCB,进程也随之消亡。
task_struct 的内容分类

  • 标识符:(pid)描述本进程的唯一标识符,用来区别其他进程
  • 进程状态:就绪状态,阻塞状态,运行状态
  • 内存指针:包括程序代码和进程相关的数据的指针,还有和其他进程共享的内存块的指针,该指针指向程序地址空间。
  • 程序计数器:保存程序执行的下一条指令。
  • 上下文数据:程序执行时处理器的寄存器中的数据(eg:休学)。
  • 优先级:相对于其他进程的优先级。
  • I/O状态信息:包括显示给I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
  • 记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
  • 其他信息

在这里插入图片描述

CPU密集型程序:程序大量的时间都在使用CPU进行计算
I/O密集型程序:程序大量时间都在和磁盘打交道,进行IO
并行:在同一时间,多个进程,每一个进程都拥有一个cpu进行运算
并发:多个进程,只拥有少量cpu,每个进程只能独占cpu一小会,就会让出cpu以供其他进程运算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值