首页 > 系统相关 >进程

进程

时间:2023-06-16 20:45:30浏览次数:35  
标签:孤儿 函数 exec 缓冲区 fd 进程

进程

c程序启动过程

c程序启动,在mian执行前先执行例程,收集命令行参数

进程终止

atexit()函数

进程终止

查看系统进程命令:
ps -aux

进程状态

进程调度

进程状态变化

进程创建

使用fork()创建子进程,子进程会赋值父进程的内存空间

对于带缓冲区的io函数,缓冲区在堆,子进程会复制父进程的缓冲区

如:fprintf()函数,父进程fprintf()函数带缓冲区,子进程会复制
父子进程都输出带换行符,清空缓冲区

子进程复制父进程的文件描述符fd,父子进程对fd的操作是对同一个fd。

守护进程、孤儿进程、僵尸进程

孤儿进程:父进程结束后,子进程就成孤儿进程了,会由1号进程(init进程)领养

僵尸进程:

wait

exec()函数

替换

system函数,简化exec函数

标签:孤儿,函数,exec,缓冲区,fd,进程
From: https://www.cnblogs.com/persistencejunjie/p/17486457.html

相关文章

  • CKS 考试题整理 (13)-使用 sysdig 检查容器里里的异常进程
    Task使用运行时检测工具来检测Podtomcat单个容器中频发生成和执行的异常进程有两种工具可供使用:sysdigfalco注:这些工具只预装在cluster的工作节点,不在master节点。 使用工具至少分析30秒,使用过滤器检查生成和执行的进程,将事件写到/opt/KSR00101/incidents/summ......
  • 【操作系统】【进程管理】怎么避免死锁?
    1  前言这节,我们来系统地聊聊死锁的问题。死锁的概念;模拟死锁问题的产生;利用工具排查死锁问题;避免死锁问题的发生;2 死锁的概念在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,......
  • web worker进程和线程的区别,Chrome 中有哪些常⻅进程,如果我有⼀个耗时很⻓的同步计算
    进程(Process)和线程(Thread)都是操作系统中用于多任务处理的概念。简单地说,一个进程就是一个程序的执行空间,而一个线程则是在执行空间内独立运行的执行路径。区别:进程是系统分配资源的最小单位,线程是操作系统调度的最小单位。各个进程之间是独立的,各个线程之间共享一些资源。创......
  • 多进程log4cxx区分日志
    多进程log4cxx区分日志(金庆的专栏)网游客户端一般会多开,多个进程会写同一个日志文件。log4cxx看来会对文件加锁,防止多进程写同一文件写乱,截止目前还没发现错乱的日志。log4cxx有个MDC(MappedDiagnosticContext)功能,可以区分不同进程的日志。在日志格式中插入帐号名,就可以区分不同......
  • Supervisor启动并管理Celery相关进程
    Supervisor启动并管理Celery相关进程关于celery在运行过程中,默认情况下是无法在关机以后自动重启的。所以我们一般开发中会使用supervisor进程监控来对celery程序进行运行监控!当celery没有启动的情况下,supervisor会自动启动celery,所以我们需要安装supervisor并且编写一个supervi......
  • k8s集群根据进程PID获取Pod名称
    简单说明在实际的应用场景中,我们如果看到某个进程资源或服务异常,需要根据这个进程排查到底是哪个服务的Pod,这里我们介绍一种根据PID快速寻找Pod名称的方法。实际操作查看进程PID这里我们以GPU任务为例说明,可以看到占用显卡的任务PID为8241[root@centos~]#nvidia-smiThuJu......
  • Python教程-多线程与多进程
    什么是线程,什么是进程?进程是程序(软件,应用)的一个执行实例,每个运行中的程序,可以同时创建多个进程,但至少要有一个。每个进程都提供执行程序所需的所有资源,都有一个虚拟的地址空间、可执行的代码、操作系统的接口、安全的上下文(记录启动该进程的用户和权限等等)、唯一的进程ID、环境变......
  • java开发系统内核:进程的挂起和恢复
    有了进程的自动调度后,接下来的任务在于,如何将空闲进程挂起,空闲进程往往是那些没有具体任务需要处理的进程,因此,如果继续让其运行的话,那么必然会耗费宝贵的CPU资源,如果能让它先挂起,等到它需要执行具体任务时,再把它调度到前台,那才是一种合理的进程管理机制。我们实现的进程调度,是依赖......
  • java开发系统内核:自动化进程切换
    我们已经通过时钟中断完成了两个进程间的相互切换。但当前实现有很大的缺陷,例如我们只能在两个指定的进程间切换,如果要想增添新的进程,那么,没增加一个进程,按照当前模式,我们只能再增加相应代码,这显然是不可接受的。因此,这节,我们希望完成进程的切换机制,使得有新进程时,我们无需改动代码......
  • java开发系统内核:实现进程自动切换,再现Linus当年辉煌一刻
    Linux操作系统内核于1991年10月5日被LinusBenedictTorvalds所开发,从此后,世界软件史揭开了新的帷幕,我们现在很多伟大的软件项目,都构建在Linux的基础之上,不说用于支撑谷歌,阿里,百度等巨头业务的后台大型服务器,现在风靡世界的安卓操作系统,也是构建在Linux之上的,可以说,没有当年Linux......