操作系统(三)

2020-06-25  本文已影响0人  焰火青春

1. 操作系统考察点

大部分企业应用跑在 Linux server 上,因此需要具备以下几点:

查询 Linux 命令用法

1.1 文件/目录操作命令

文件或日志查看工具

1.2 进程操作命令

1.3 内存操作命令

1.4 网络操作命令

1.5 用户、组操作命令

1.6 线程与进程区别

什么是线程安全

一个线程的修改被另一个线程的修改覆盖了,加锁保证不被修改

Python 哪些操作时线程安全的?

线程同步方式

进程间通讯方式

1.7 Python 多线程和多进程

多进程

2. 操作系统内存管理机制常见考题

2.1 什么是分页机制

是为了减少内存碎片、高效机制 ,逻辑地址和物理地址分离的内存分配管理方案

[图片上传失败...(image-d72a7e-1593095732636)]

2.2 分段机制

[图片上传失败...(image-60fcc7-1593095732636)]

分页和分段区别

2.3 虚拟内存

把一部分暂时不用的内存信息放在硬盘:程序运行时只有部分必要的信息放内存

2.4 内存抖动(颠簸)产生的原因

2.5 Python 垃圾回收机制原理

Python 不需要像 C 语言手动回收内存,它会自动回收内存:

当引用计数为 0,就会回收掉。

# 查看引用计数,调用也会增加
import sys

a= [1, 2]
sys.getrefcount(a)
2

b= 1
sysgetrefcount(1)
2900  

循环引用

当两个对象互相引用之后,引用计数无法清零即循环引用,这种情况可能会导致内存泄露,我们可以使用 标记清除 的方式解决循环引用的问题。

image image

线程练习题

3. 面试题

1、讲一下你常用的Linux/git命令和作用

2、查看当前进程是用什么命令,除了文件相关的操作外,你平时还有什么操作命令

ps -ef | grep redis
mv a.txt /home/hj/b.txt
vim a.txt
cp a.txt /b.txt
rm -r
cat。。。
pwd
cd
mkdir
find  / --name a.txt

1、讲一下你常用的Linux/git命令和作用

2、查看当前进程是用什么命令,除了文件相关的操作外,你平时还有什么操作命令

ps -ef | grep redis
mv a.txt /home/hj/b.txt
vim a.txt
cp a.txt /b.txt
rm -r
cat。。。
pwd
cd
mkdir
find  / --name a.txt

3、Git

个分布式版本控制系统,两个重要功能:版本控制和协作开发

常用命令:

git init    # 初始化
git add .   # 添加所有,添加到暂存区
git commit -m   # 提交到版本库
git  status     # 查看工作区状态
git log --pretty=oneline    # 查看提交记录
git reset --hard HEAD^      # 回到上一个版本
git reset --hard 8e882b     # 实际只需要前 6 位即可
git branch          # 查看所有分支,带星号的为当前分支
git checkout master         # 切换到 master 分支
git merge 分支名           # 合并分支

将本地推送到远程:

# github 新建仓库
# 切换到要推送的文件夹中
git init        # 初始化版本库
git add .       # 添加到暂存区
git  commit -m 'xxx'        # 提交到版本库
git remote add origin https://github.com/xxx        # 与 github 上仓库关联
git pull --rebase origin master     # 拉取远端最新的代码(其实是将远端的 readme.md 文件与本地的合并在一起,解决冲突)
git push -u origin master           # 推送
上一篇 下一篇

猜你喜欢

热点阅读