简述进程的启动、终止的方式以及如何进行进程的查看。

参考答案:

(1)在Linux中启动一个进程有手工启动和调度启动两种方式:

(1)手工启动

用户在输入端发出命令,直接启动一个进程的启动方式。可以分为:

①前台启动:直接在SHELL中输入命令进行启动。

②后台启动:启动一个目前并不紧急的进程,如打印进程。

(2)调度启动

系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。

(2)进程终止的5种方式

  • 正常退出

    • 从main函数返回–语言级别的返回操作
    • 调用exit–C库函数
    • 调用_exit–系统调用
  • 异常退出 
    • 调用abort 产生SIGAORT信号
    • 由信号终止 ctrl+c /SIGINT

exit和_exit的区别

  • 区别1:清空缓冲区的操作
int main(void)
{printf("hello itcast");//exit(0);//不需要程序员手工刷新缓冲区fflush(stdout);//不加这句话--不会刷新缓冲区--不会打印_exit(0);
}
  • 区别2:exit会调用终止处理程序 
    关于终止处理程序:
  • atexit可以注册终止处理程序,ANSI C规定最多可以注册32个终止处理程序。
  • 终止处理程序的调用与注册次序相反
  • 函数原型:int atexit(void (*function)(void));
  • 查看帮助文档:man 2 atexit
#include <sys/types.h>
#include <unistd.h>#include <stdlib.h>
#include <stdio.h>
#include <string.h>#include <signal.h>
#include <errno.h>
#include <signal.h>exit(0)是c库函数 =  _exit(0); //系统调用
//\n能启动刷新缓冲区的作用
//void bye1(void)
{printf("bye1...do\n");
}void bye2(void)
{printf("bye2...do\n");
}int main()
{atexit(bye1);atexit(bye2);printf("hello....  fddddddddd1111");fflush(stdout);//exit(0)是c库函数 =======其他操作。。。。在调用_exit_exit(0); //系统调用--不会调用终止处理程序
}int main02()
{atexit(bye1);atexit(bye2);printf("hello....  fddddddddd1111\n");//abort();//exit(0); //是c库函数 =======调用终止处理程序。。。。在调用_exitreturn 0;//会调用终止处理程序}
  • 总结exit与_exit区别 
    1)_exit是一个系统调用,exit是一个c库函数 
    2)exit会执行刷新I/O缓存 
    3)exit会执行调用终止处理程序

return和exit的区别

  1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统;而return 是退出当前函数,返回函数值,把控制权交给调用函数。
  2. exit是系统调用级别,它表示一个进程的结束;而return 是语言级别的,它表示调用堆栈的返回。
  3. 在main函数结束时,会隐式地调用exit函数,所以一般程序执行到main()结尾时,则结束主进程。exit将删除进程使用的内存空间,同时把错误信息返回给父进程。
  4. void exit(int status); 一般status为0,表示正常退出,非0表示非正常退出。

区别就是:

1)exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的。也可以这么讲:exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。

main函数结束时也会隐式地调用exit函数,exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。

exit是系统调用级别的,它表示了一个进程的结束,它将删除进程使用的内存空间,同时把错误信息返回父进程。通常情况:exit(0)表示程序正常, exit(1)和exit(-1)表示程序异常退出,exit(2)表示系统找不到指定的文件。在整个程序中,只要调用exit就结束。

2)return是语言级别的,它表示了调用堆栈的返回;return是返回函数值并退出函数,通常0为正常退出,非0为非正常退出,请注意,如果是在主函数main, 自然也就结束当前进程了(也就是说,在main()里面,你可以用return n,也能够直接用exit(n)来做),如果不是在main函数中,那就是退回上一层调用。在多个进程时,如果有时要检测上个进程是否正常退出,就要用到上个进程的返回值。

(4)经常使用的进程调度命令为:at、batch、crontab。

简述进程的启动、终止的方式以及如何进行进程的查看。相关推荐

  1. Android 系统(246)---SystemServer进程的启动流程

    Android进程系列第四篇---SystemServer进程的启动流程 一.内容预览 内容预览.png 二.概述 前面进程系列已经更新了三篇,本文(基于Android O源码),第三篇中System ...

  2. 进程互斥的硬件实现方式【操作系统学习笔记】

    19.进程互斥的硬件实现方式 文章目录 19.进程互斥的硬件实现方式

  3. 进程八种终止方式(很重要)

    ----根据网络视频整理 进程的终止 0.前言 进程的返回值是给其父进程看的,main()函数的返回值,return 0; 这个0就是给父进程看的.我们在shell中启动该进程,则shell就是该进程 ...

  4. 简述linux开机启动进程,Linux系统启动流程简述

    一.第一阶段:硬件引导启动 1.Bios上电自检, 初始化硬件:显卡,内存,磁盘 2.根据Bios设置找到启动介质,初次安装linux系统一般是CD-ROM或者U盘启动,已安装Linux系统选择本地H ...

  5. python启动方法_python进程开启的两种方式

    一.进程 1.1.方式一 from multiprocessing import Process import time #方式一 def task(name): print(f"my na ...

  6. 操作系统(二 )| 进程管理初探(前趋图、程序执行、进程的定义特征基本状态,进程的创建终止,阻塞唤醒,挂起激活)

    文章目录 前趋图和程序执行 前趋图 程序的顺序执行 程序的并发执行 进程的定义和特征 进程的基本状态 就绪状态 运行状态 阻塞状态 挂起状态 进程控制块(PCB) 作用: 块中信息: PCB的组织方式 ...

  7. Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结

    Linux进程通信的四种方式--共享内存.信号量.无名管道.消息队列|实验.代码.分析.总结 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须 ...

  8. 模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制

    操作系统第二章--进程的描述与控制 前趋图和程序执行 前趋图 前趋图是一个有向无循环图DAG,用来描述进程之间执行的前后关系 初始结点:没有前趋的结点 终止结点:没有后继的结点 重量:表示该结点所含有 ...

  9. 模拟进程创建、终止、阻塞、唤醒原语_轻松搞定进程原理

    进程简介 并发和并行 并发:在一个时间段中多个程序都启动运行在用一个处理机中 并行:两个进程分别由不同的CPU管理执行,两个进程不抢占CPU的资源,且可以同时运行,叫做并行 区别在于是否同时 多进程的 ...

最新文章

  1. 清华大学范玉顺互联网与大数据_清华大学范玉顺:大数据、人工智能与工业互联网...
  2. 参考地、保护地、大地的概念
  3. 科大星云诗社动态20210811
  4. [android笔记]常用的Uri例子
  5. 无忧开通了博客园博客主页
  6. 想让AI在企业落地?微软最新Azure AI不容错过!
  7. linux 定时传送文件,Windows与Linux之间定时文件传输
  8. 线程池ThreadPoolExecutor的使用方法
  9. 使用SecureCRT工具上传、下载文件的两种方法
  10. adb shell 查看CPU架构
  11. Html中如何自定义Video显示的长宽比
  12. 神话人物马化腾的“神话”
  13. h5微信f分享链接给对方获取对方手机号_互删的微信好友怎么找回?这些技巧你值得拥有...
  14. 嵌入式软件管培生每日总结-第1天
  15. 如何防止网站被黑客入侵,避免网站被黑的防御方法
  16. win7一直安装并更新计算机,win7系统更新时一直正在等待安装重启不更新的恢复方案...
  17. windows XP 系统文件诠释B(转)
  18. docker实现替换镜像
  19. 图书预订系统:书店向顾客发放订单,顾客将所填订单交由系统处理,系统首先依据图书目录对订单进行检查并对合格订单进行处理,处理过程中根据顾客情况和订单数目将订单分为优先订单与正常订单两种,随时处理优先订单
  20. OCIStmtExecute发送接收处理的定位

热门文章

  1. nmap之扫描端口(附加hping3隐藏扫描)
  2. linux 检测日志文件内容变化
  3. BZOJ3238: [Ahoi2013]差异
  4. 微信小程序 wx:key 提示-解决
  5. jboss 反序列化 getshell
  6. 关于清除浮动那些事儿~
  7. hdu1715(Java)大数相加
  8. Spring AOP中pointcut expression表达式解析
  9. DevExpress XtraTabControl 加载Form
  10. WDS使用捕获映像制作企业自定义映像