阿鑫来了  

冯诺依曼体系结构: 现代计算机的硬件体系结构(规定了现代计算机应该具有哪些硬件单元)

   硬件单元: 输入设备(键盘), 输出设备(显示器), 存储器(内存条), 运算器, 控制器(运算器+控制器    中央处理器cpu)

   所有设备都是围绕存储器工作的,  存储器是作为中间的数据缓冲而存在的

操作系统: windows, macos, 红帽子, centos, ubuntu

   组成:  内核+应用   (linux是内核    红帽子, centos, ubuntu是linux+不同的应用构成的)

   定位:  计算机上搞管理的软件,  管理计算机上的软硬件资源

   管理:            

 

 

系统调用接口:  操作系统提供的用户访问系统内核的接口

库函数与系统调用接口的关系:  库函数实际上是对系统调用接口进行的一层封装后的接口

 

进程概念: 

   进程:  运行中的程序. 

 

 

1. cpu如果同时进行./main和./child程序,  利用cpu的分时机制

        cpu先进行./main程序几毫秒,  然后进行./child程序几毫秒,  交替进行,  人无法察觉.

 2. 执行完./main之后,  下一次执行时,  如何知道他运行的哪个位置?

        利用pcb进程控制块,  就是对程序运行时的描述.  可以在pcb中记录下上次运行到的位置. 

这个程序运行的动态描述,  叫做pcb进程控制块,  在linux下是一个task_struct结构体.

通过程序运行的描述,  操作系统就可以调度哪个程序可以占用cpu去执行命令;  要运行哪个

程序,  则操作系统找到对象程序的pcb,  在pcb中取出程序运行所需的信息,  加载到cpu上,  

cpu就开始运行这个程序了.

 

对于操作系统来说,  进程就是一个程序运行的描述,  通过这个描述,  操作系统可以进行程序的调度运行管理;  实际上对于系统来说,  进程就是pcb.

描述的信息:  内存指针,  上下文数据,  程序计数器,  进程ID---pid,  IO信息,  进程优先级,进程状态.......

进程的简单操作:

    创建进程:  进程就是一个pcb是一个task_struk结构体(linux中),  创建进程实际上就是创建了一个task_struct结构体.

pid_t fork(void)---创建进程的接口---通过复制调用这个接口的进程(父进程),  创建一个新的进程(子进程)

    对于父进程返回子进程的pid,  对于子进程返回0

    ps -ef   查看所有进程信息

    ps -ef | grep fork    只查看fork有关的进程信息

    ps -aux   查看所有进程信息,更加详细

退出进程:  exit(0)   谁调用谁退出,  0是退出返回值

    进程状态:  用于操作系统对于进程的管理(什么状态就对进程进行什么样的操作) 

运行态,  就绪态,  阻塞态

          linux中的进行状态:

                 运行态(R):  正在运行或轮转到时间片就能够运行                                          

                 可中断休眠态(S):  可以被中断的休眠状态(满足唤醒条件,  或者休眠被中断则进入运行态)

                 不可中断休眠态(D):  不可被中断的休眠状态(满足唤醒条件才能进入运行态)

                 停止态(T):  程序停止运行的状态(依然会被调用,  但是什么都不做)

                 死亡态(X):  

                 僵尸态(Z):  进程已经退出不再调度了,  但是这个进程的资源还没有被完全释放,  等待处理的一种状态

                     僵尸进程:  处于僵尸态的进程,  是一种退出了,  但是资源没有完全被释放的进程

                           产生:  子进程先于父进程退出,  但是父进程没有关注到子进程的退出,  因此系统不会完全释放子进程的资源,  这个子进程进入僵尸态.  子进程退出之后,  在进程pcb中保存了自己的返回值,  在父进程没有关注处理的情况下,  pcb资源不会被释放

                           危害:  资源泄露(1.pcb所占的内存资源一直无法被回收;  2.一个用户所能创建的进程数量是有限制的)

                           处理:  退出父进程(不合理)

                           避免:  进程等待

                     孤儿进程:  父进程先于子进程退出,  子进程就成为孤儿进程,运行在后台,  父进程成为1号进程

                     精灵进程(守护进程):  特殊的孤儿进程

 

posted on 2021-05-06 10:06  阿鑫来了  阅读(192)  评论(0)    收藏  举报