冯·诺依曼体系结构
特点:在该体系结构中,外设不能直接与cpu连接,而是要先通过与存储器,存储器再与cpu通信。下面我们模拟一下两个人通过软件发送消息的过程:
操作系统(OS)
例如,在学校中,校长就是我们的管理者,比如校长在分发我们学生的奖学金时,首先通过学生的成绩来评选优秀的学生,而执行这件事的是辅导员,校长就可以通过辅导员来管理学生的奖学金。
例比到操作系统,操作系统在管理计算机的硬件时,也就需要一个东西来管理。这个就是驱动系统。在管理时通过数据来进行决策,管理者和被管理者并不是直接联系。操作系统主要有四个管理:内存管理,进程管理,文件管理和驱动管理。
通过图片,我们可以看到,(敲黑板,很重要)操作系统对上为用户提供一个良好的执行环境(通过暴露很多接口连接);对下管理所有的软件硬件资源。
系统调用和库函数:
操作系统在对上提供一个良好的执行环境时,会暴露出自身的很多接口,而很多接口用起来非常麻烦。所以就出现了大佬把接口进一步简化,重新封装了接口,因此就形成了库函数,库函数用起来会更加方便简单。
什么是进程?
概念:正在执行的程序,担当分配系统资源的实体,比如:执行进程时占用CPU资源,占用内存等。
管理进程:
- 描述进程———> 结构体
进程中的信息被存放在进程控制块(PCB:process control block)的数据结构中。
在Linux中,描述进程的结构体:task_struct(Linux内核的一种数据结构,会被加载到内存中)。
注意:当正在执行的进程突然被中断时,操作系统就会把该进程的程序计数器和上下文中的数据保存到相应的进程控制块中的相应的位置,然后该进程的状态就会被改为其他的状态。那么,在之后该进程被恢复执行时就好像没有被中断过一样。 - 组织进程
task_struct以链表的形式存在Linux内核中。
创建子进程—fork函数
作用:它从已经存在的进程中创建一个新进程,该新进程就是子进程,而原进程就是父进程.
函数原型:pid_t fork