操作系统笔记01:初识操作系统
目录:
- 冯诺依曼体系结构
- 操作系统概念
- 进程与进程状态
冯诺依曼体系结构
输入设备:键盘、鼠标、扫描仪等
输出设备:显示器、打印机等
注:此处存储器指内存
硬盘既能作为输入设备,也能作为输出设备
CPU在数据层面不和外设打交道,仅和内存打交道
一切设备都只能和内存打交道
操作系统概念
操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。 ——百度百科
操作系统由内核和其他程序构成。
操作系统的核心工作是管理
如何进行管理:先描述(struct
结构体),再组织(链表等数据结构)
进程
进程是程序执行时的一个实例。——《深入理解Linux内核》
进程:进程要执行的代码+操作系统管理进程的相关数据结构
进程与程序的区别:存储位置不同(进程:内存 程序:磁盘)
描述进程——PCB
进程的内容存储于进程控制块中,Linux系统中为task_struct
task_struct内容:
- 标识符(PID)
- 状态
- 优先级
- 程序计数器:程序中即将被执行的下一条指令的地址——保存正在执行的指令的下条指令的地址;由PC指针指向;每个程序都有
- 内存指针:包括程序代码和进程相关数据的指针,还有和其它进程共享的内存块的指针
- 上下文数据程序执行时处理器的寄存器中的数据
- I/O状态信息
- 记账信息:处理器使用时间总和,使用的时钟数总和,时间限制,记帐号等
- 其他信息
组织进程
在内核源码中。所有运行在系统里的进程都以task_struct
链表的形式存在内核里
查看进程
ps aux
查看系统内所有进程
进程信息存在于/proc
系统文件夹中
进程状态
- R (running),可执行状态&运行状态(在运行队列里的状态),如果一个进程是“R”状态,不一定在CUP上运行
- S (sleeping),进程等待事件完成,可中断的睡眠状态,可处理signal
- D (dis sleep),硬盘休眠,不可中断的睡眠状态(深度睡眠),一般在写入数据时,无法被操作系统杀死,不对外部做任何反应
- T (stopped),停止状态,可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行
- t (tracing stop),追踪状态debug时
- X (dead),死亡状态
- Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程。不可被kill, 即不响应任务信号,无法用SIGKILL杀死
孤儿进程:父进程提前退出,子进程就被称之为“孤儿进程”,孤儿进程会被1号init进程领养,由init进程回收