进程管理和计划任务

进程概念

      task struct:内核存储进程信息的数据结构

      task  list:     多个任务的task struct 组成的链表

      创建进程  CoW   Copy on Write   写时复制   

      子进程只有在数据发生变化的时候才会把父进程的内存空间复制一份给子进程,否则父进程和子进程是 占用一块相同的内存空间的.

      进程的几种状态

         1.创建

         2.就绪

         3.执行

         4.阻塞

         5.终止

   进程优先级

        数字越小,优先级越高

        每个优先级包含两个队列,分别为运行队列和过期队列.在cpu运行同一个优先级的进程中,运行队列和过期队列会不停的进行切换.

 进程内存

       内存存放进程信息是以页框为基本单位的,每页的大小是4k

  LRU内存近期最少使用算法

物理地址空间和虚拟地址空间(线性地址空间)

           对于一个应用程序来说,操作系统会分配一段真实的内存空间给此进程,但是应用程序会把此段物理空间虚拟成操作系统中整个内存空间.

进程之间的通信

    同一主机

                  signal 信号

                  shared memory  共享内存

                  semaphore   信号量,一种计数器

    不同主机

                  socket       IP地址+端口号

                  RPC          远程调用

                  

                  MQ           消息队列

进程管理工具

  kill 

  killall

  pkill

进程前后台切换

    18,19 代表信号类型

    cmd &    虽然能把命令发送到后台执行,但是依然和执行的终端相连.把终端关闭,后台进程也会被终止掉.

  

    剥离后台进程和终端的关系

       nohup COMMAND &>/dev/null  & 

       screen;COMMAND 

       使用nohup 启动的后台进程如果把对应的终端关闭后,后台进程的父进程由原来的Bash进程变成了systemd(系统的第一个进程)

进程的并行执行

    同时运行多个进程,提高效率

    方法1

       vi all.sh           

             f1.sh&

             f2.sh&

             f3.sh&

    方法2

             (f1.sh&);(f2.sh&);(f3.sh&)

    方法3

             { f1.sh& f2.sh& f3.sh& } 


 计划任务

     未来的某个时间点执行一次性任务

          batch:  系统自行选择空闲时间去执行指定任务(用的比较少)

          at:       指定具体时间点执行某些命令

                     命令文件保存在        /var/spool/at      目录下

                     计划任务命令中的标准输出默认会以邮件的方式发送给用户 可以把标准输出重定向到  &> /dev/null 中

         黑名单和白名单的设置规则

               系统默认存在一个黑名单  /etc/at.deny文件        白名单文件需要自己手动添加  /etc/at.allow

               如果有白名单文件就只查看白名单里面的用户,只有在白名单里的用户才有权限创建at任务,其它用户不管在不在黑名单里都无权创建at任务

               如果只有黑名单文件就只查看黑名单里面的用户,只有黑名单的用户才会无权创建任务,其它用户都可以创建计划任务.

               如果黑名单文件和白名单文件都不存在,那么只有root用户才能创建任务,其它用户都无法创建计划任务.

     周期性的运行某个任务

         cron

         /etc/crontab    配置格式   只有root用户才有权限修改此文件

         分(0-59)      时(0-23)     天(1-31)      月(1-12)          星期(1-7)          用户名         cmd

        黑白名单设置同at规则一样

        普通用户创建定时计划任务

             crontab   -e

        存放的任务文件存储在  /var/spool/cron  目录下

   

猜你喜欢

转载自www.cnblogs.com/yxh168/p/8986067.html