操作系统学习笔记(二)
进程,地址空间与线程
在引言中我们已经提到,由于计算机所拥有的物理资源有限,当多个程序在计算机上同时运行时,它们不可能连续地在处理器上运行或占用全部内存,因此我们需要进程的抽象在用户的一侧隐藏上下文切换等细节。进程作为运行的程序的抽象,包含了一个程序的运行状态和这个程序所用的抽象内存及其中存储的数据。我们将后一部分,即一个进程可以使用的全部内存的地址和它们存储的数据,称为这个进程的 地址空间(address space)。我们可以将进程笼统地看做是一个或多个线程与一个地址空间的结合。
进程作为运行的程序的抽象,
包含了一个程序的运行状态 和 这个程序所用的抽象内存 及其中存储的数据。
一个进程可以使用的全部内存的地址和它们存储的数据,称为这个进程的 地址空间(address space)。
我们可以将进程笼统地看做是一个或多个线程与一个地址空间的结合。
看起来好像是这样子。
运行状态+内存+数据+线程(一个或多个)= 进程
进程五态的转换
如下图所示。
.profile 登录时执行
.bashrc 打开bash 执行
file 可以查看文件详情
chmod 修改权限
chown 修改所属用户
chgrp 更改文件所属组
man 手册中 / 查找
shell 中&& 连接两个命令只有第一个命令成功执行,第二个命令才会执行
|| 同或
文件系统相关知识点
/boot 启动文件。所有与系统启动有关的文件都保存在这里
/grub/ grub 引导器相关文件
/dev/ 设备文件
/proc/ 内核与进程镜像
/mnt/ 临时挂载
/media/ 挂载媒体设备
/bin/系统程序
/sbin/管理员系统程序
/lib/系统程序库文件
/etc/系统程序和大部分应用程序的全局配置文件
/usr/bin/应用程序
/usr/sbin/同上
/var/动态数据
/temp/临时文件
系统信息
uptime 系统运行时间,平均负载
who 当前登录的用户信息
last 用户最近登录信息
date 时间显示
w 当前在线用户
uname 打印当前系统信息
w -h 去头
-s 短输出
who -q 显示当前在线总人数
uname -a 全部
-m 电脑类型
-n 主机名
-v os版本
-p 处理器类型
-i 硬件平台
-o 操作系统名称
pwd 打印当前目录
cat -n:列出行号连同空行
-b:列出行号
tac 反向连续
nl 输出行号显示文件
nl -b 行号指定的方式
-n 行号列出的表示方式
-rn ln
-w <num> 行号所占位数
head -n num 显示前num行
-n -num:除了后num行其他都显示
tail - n Num 显示前num行
-n -num 除了前num行都显示
lsattr 显示文件的隐藏属性
文件的特殊权限
set_uid s 用户在执行程序是获取程序所有者的权限
set_gid s 在该目录下,用户的有效组为目录所属组
sticky bit t 该目录下用户只能删除自己创建的内容
find 高级查找
find
与时间相关的参数
-atime -ctime -mtime
-mtime n: n天前的一天内的修改的内容
-mtime +n:n天前
-mtime -n:n天内
与用户相关的参数
-uid -gid -user -group
与文件权限与名称有关的参数
-name -size -type -perm mode(等于mode权限的文件)
cut
-d c:以字符
-f n-m:显示n-m字段的内容n-;n-m;-m;
grep
-v :反向输出
-c:统计找到的此时
sort
-t:分割符
-k:以哪个区间排序
-r: 反向排序
-n:以纯数字的方式排序
uniq 去重
-c: 计数
split 分割文件
-b size按多大的去分割
free 打印系统情况和内存情况
pstree 一树状显示进程派生关系
pgrep 查找进程ID
kill -9
pkill 批量删除