操作系统笔记1
操作系统笔记1
一.引论
1.操作系统的状态分为用户态(user mode)和内核态(kernel mode)
2. 1 操作系统可以作为扩展机器
- 可以隐藏大量繁杂的细节
- 展示用户一个虚拟机,更容易使用
2.2操作系统可以作为资源管理者
- 让多个程序同时运行
- 管理和保护内存,IO设备和其它的计算机资源
- 以两种方式实现多路复用
-
- 1.空间复用
- 2.时间复用
- 批处理 (batch system) 有很好的效率,但是却有着糟糕的交互
- 分时系统(time-sharing system)
-
- 一个多道程序设计的一个变种
- 把CPU使用时间分成时间片
- 有着快速相应的时间
- 多道程序设计(multiprogramming system)
-
- 把内存分为多个部分,每一个部分有着不同的作业
- 宏观上是并行的
- 微观上是串行的
- I/O 设备分为两个部分,设备控制器和设备本身
3.操作系统概念
- 地址空间:从某个最小值的存储位置到最大值的存储位置的列表,在这个地址空间中,进程可以进行读写
- 在许多操作系统中,与一个进程有关的所由信息,除了进程自身地址空间的内容以外,均存放在操作系统的一张表中,称为进程表(process table)。进程表是线性结构,当前存在的每一个进程都要占用其中一项
- 每个用户都有一个指定的UID(User Identification),每个进程都会有一个PID(Process Identification)
- 用户可以是组里的成员,每一个组都有一个GID(Group Identification)
- 如果文件的访问被允许的话,系统会返回一个小整数,叫做文件描述符(file descriptor)
- Unix 文件有9位保护码,分为三块三位的码,分别代表创始人,组成员和任意用户(owner,group and others),每块三位的码中,三位分别代表读写和执行(read,write and execute)
- 有些相关进程经常需要通信以便于同步它们的行为,这种通信称为进程间通信(interprocess communication)
- Unix中有两种特殊文件,块特殊文件(block special file)和字符特殊文件(character special file),程序可以直接访问这些特殊文件而不必考虑存放该文件的文件系统结构
- 管道(pipe)可以用来连接两个进程
- Unix中,命令解释器(command interpreter)也被称为shell
4.系统调用
-
系统调用就像一个一个特殊的过程调用,但是系统调用可以进入内核,而过程调用则不能
-
用于进程管理的系统调用
fork 创建一个新的进程
execve 用于fork调用之后,替换一个新的程序
waitpid 用于等待子进程中止
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!