进程--学习笔记

进程:

       程序是磁盘文件。进程是程序的一次运行活动。

       程序是静态的。进程是动态的。进程具有生命期。

       进程的创建、进程的运行、进程的退出。

      

1.        进程的创建

a)        进程管理器->PCB

                                      i.             描述信息

                                    ii.             控制信息

                                   iii.             资源信息

                                  iv.             CPU现场信息

b)   进程管理器->内核链表->task_struct

ps –ef

ps –aux

2.        进程是资源分配的独立单位

虚拟内存资源:

内核态:物理存储区;隔离带;虚拟存储区;隔离带;固定存储区;应用存储区…

如何从用户态到核心态:系统调用和中断。

3.        进程是调度的独立单位

a.        作业调度:批处理

b.        进程调度:所有的程序基本的调度,是任务调度的基本单位,进程的独立性

c.        线程调度:任务调度的最小单位

4.        进程的分类:

a)        交互进程

b)       批处理进程

c)       守护进程:

                                      i.             执行特定功能或者执行系统相关任务的后台任务

                                    ii.             父进程为1

                                   iii.             没有终端

                                  iv.             又称为:精灵进程

5.        进程的特点

a)        动态性

b)       并发性

c)       独立性

d)       异步性

6.        进程的状态

a)        执行态:R:获得CPU资源和时间片

b)       等待态:S:分为可中断等待和不可中断等待

c)       就绪态:R:

d)       僵尸态:Z:具有描述信息和控制信息。没有CPU现场信息和资源信息。占用进程号资源。

7.        进程的ID (PID)

a)        进程的个数是有限的

b)       每个进程都有一个PID,动态变化的。ID是可以被重复使用的。

c)       ulimit –n查看文件描述符的总个数。可产生to many file numbers错误。

d)       PPID:父进程ID。init进程是所有进程的祖先进程。

8.        进程的调度方式:

a)        抢占式和非抢占式

b)       调度算法

                                      i.             先来先服务

                                    ii.             短进程优先

                                   iii.             高优先级优先

                                  iv.             时间片轮转法

c)   进程的互斥:多个进程要使用共享资源,但最多允许一个,其他进程需要等待

                                                    i.             信号量和锁机制、消息队列

                                                  ii.             共享资源:共享内存、文件

9.        临界资源:

操作系统中一次只允许一个进程访问的资源称为临界资源

10.    使用临界资源的代码叫作临界区。

lock()

临界资源

unlock()

从lock到unlock称为临界区。

只lock不unlock会产生死锁。

11.    进程同步

a)        一组并发进程按一定的顺序执行的过程称为进程间的同步。

 

进程创建:    fork()、vfork()、clone()

       1.    fork()如果成功返回父进程和子进程

       2.    子进程有父进程的成员

       3.    父、子进程有独立的空间

       4.    子进程会复制父进程的资源(PCB里的资源信息)copy-on-write机制

       5.    子进程与父进程的优先级相同。nice看优先级0-19之间,数值越大优先级越底

       getpriority()设置进程优先级

 

2)   进程的执行

a)        execl函数

b)       stdarg库 不定长函数

 

3)   进程的退出

a)        main函数的退出

                        i.             return

b)   信号

c)   exit/_exit/_Exit

d)   exit和_exit的区别

a)        exit属于glibc库

b)       _exit属于posix库(portable operation systeminterface)

c)       exit会刷新缓冲区、_exit不刷新缓冲区。

d)       exit会关闭打开的文件、_exit不关闭打开的文件

e)        exit会调用内存清理函数、_exit不调用内存清理函数

f)        atexit函数内存清理、on_exit()内存清理函数

 

实现printf函数

 

4)   进程的等待

a)        作用:避免僵尸进程的出现

b)       僵尸进程(zombie process):具有描述信息,控制信息,没有资源信息和CPU现在信息。僵尸进程不参与调度、不占用内存。占用进程号资源。Z -> defunct

c)       父进程先退出会产生僵尸进程。所以要父进程等待子进程。

d)       kill -9 PID杀不掉僵尸进程。杀僵尸进程要杀其父进程。kill -9 PPID

e)        如何实现等待:

                        i.             wait()      waitpid() wait3()    wait4()

f)        TASK_INTERRUPTIBLE可以通过信号唤醒

g)       raise(SIGQUIT)发送信号退出

h)       kill –l 查看信号

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值