【操作系统】读者写者问题
无同步关系
互斥关系:
写进程&写进程
读进程&写进程
初步实现:
1、使用count来记录当前有多少个读进程
第一个读进程需要给加锁,后面的读进程则无需加锁,但count++还要执行
2、使用rw实现对文件互斥
3、使用mutex实现对count访问的互斥:
读进程1进入,给文件加锁;此时读进程2进入,count此时还是0,但此时读进程2进入P(rw)会被阻塞
读写公平法
初步实现中,若有多个读进程和写进程,写进程必需在全部读进程完成后,才能访问文件。容易出现写进程饿死
在此添加一个新信号量:w
此时若顺序为:读者1-》写者1-》读者2
读者1写执行P(w)、P(rw)、V(w)
写者1进入,执行P(w),但被rw阻塞
读者2进入,被w阻塞
此时,读者1执行V(rw),然后读者2还是被w阻塞!!
但写者1可以执行,随后写者1执行P(rw)、V(rw)和V(w),读者2才能执行。
【操作系统】生产者-消费者问题
多生产-多消费者
互斥关系:
四人对盘子进行访问时,需要对盘子加锁
同步关系:
1、父亲先将苹果放进盘子,女儿后可以拿;
2、母亲先将椰子放进盘子,儿子后可以拿;
3、盘子为空时,父母才可以放水果
单个生产者-多个消费者
同步关系
1、生产者先给纸和胶水,一号抽烟者后能吸烟;
2、生产者先给烟草和胶水,二号抽烟者后能吸烟;
3、生产者先给烟草和纸,三号抽烟者后能吸烟;
4、抽烟者吸烟完先告诉生产者“完成”信号,生产者后能再次放材料
【linux】vscode online搭建
在网上看过诸多搭建方式后,总结出一套可行的方案:包括上线vscode、导入拓展、绑定域名、添加证书等操作。
原帖子 https://zhuanlan.zhihu.com/p/342964881,在此基础上整理的安装方法
vscode_online优点
基于浏览器,实现超级跨平台访问,只要你的设备能联网并且有一个浏览器,就能运行VSCode Online
一个功能完整的VSCode,你可以通过安装各种VSCode插件将其配置成适合自己的IDE
界面美观(它的颜值绝对能吊打机房的Dev-cpp等各种上古IDE)
较为安全,支持密码登录,支持https
任何电脑下,都能访问到相同的配置环境,共享你的云文件!
效果图
1、安装Vscode-online
通过Code-server安装vscode-online是目前最推荐的方式
1.1、一键安装
在服务器上运行一键安装脚本
1curl -fsSL https://code-server.dev/install.sh | sh
当显示以下内容时,说明已经安装成功
1234To have systemd start code-s ...
【linux】shell脚本编程
《Unix&linux大学教程》中并未提及shell编程内容,以下内容来自《鸟哥的linux》书
创建sh文件
创建文件时,将后缀写成sh即可vim first.sh。
改成.sh只是为了方便vim辨识,在编写时对不同变量采用不同颜色
实际上,first程序加上可执行权限后,就可以直接运行,与后缀.sh无关
写第一个程序
shell脚本第一行要注明文件使用的语法,如bash。
当first.sh程序被执行时,就能加载bash相关环境配置文件,并用bash程序执行自己写的命令
12345678#!/bin/bash# program:# 这里描述first.sh程序的功能# author:lthero# history:# 这里记录修改时间echo "hello world \n"exit 0
first.sh程序将输出”hello world“这句话。
并使用exit命令让程序停止,返回0给系统,表示程序运行成功。如果返回其它数值,可以表示错误信息。
让用户输入
12345678910111213#!/bin/bash# program:# seco ...
【linux】镜像选择与gcc版本切换
ubuntu20.04安装gcc-5:解决高版本ubuntu无法安装低版本gcc
ubuntu阿里镜像 各种版本
ubuntu清华镜像 各种版本
gcc/g++版本切换
1234567sudo apt -y install gcc-5 g++-5sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 30sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 40sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 30sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 40sudo update-alternatives --config gccsudo update-alternatives --config g++
【linux】可视化安装过程
在网上摸了一圈,试了各种方法后,VNC+xfce4是最简单有效的方法
1、安装 VNC
Ubuntu 20.04
1apt install tightvncserver
Ubuntu 16.04/18.04
1apt install vnc4server
2、启动VNC
执行以下命令,启动 VNC 服务,并设置 VNC 的密码。
1vncserver
如图所示,需要设置密码,随后便新建VNC窗口成功了
3、安装xfce4
1apt install xfce4 xfce4-goodies tightvncserver
4、配置VNC
修改配置文件
1vim ~/.vnc/xstartup
替换如下内容
12345678910111213141516171819#!/bin/sh# Uncomment the following two lines for normal desktop:# unset SESSION_MANAGER# exec /etc/X11/xinit/xinitrc[ -x /etc/vnc/xstartup ] && exec /etc/ ...
【linux】ssh默认22端口无法登陆
目前使用校园网,无法使用ssh默认端口连接服务器,运维提示可以将ssh端口换成2222,以下为流程
1、打开防火墙
在阿里云或腾讯云控制台,找到对应的服务器的防火墙设置
添加规则:端口:2222 ,ip:0.0.0.0/0 (阿里云ECS有ip要求,阿里云的轻量服务器没有,腾讯也没有)
2、更换ssh端口
更换端口有两种方式(选择一种就行)
2.1通过宝塔更换
打开安全设置
放行2222端口,备注随便写**(一定要先放行)**
ssh端口更改成2222
删除原来的22端口放行
2.2通过修改sshd_config文件更换
1234567$ vim /etc/ssh/sshd_config#进入文件后,找到port这里,按i进入编辑#去除前面的"#",并修改成对应数字,如2222port=2222#按esc,再按shift+: 进入一般命令模式,输入wq回车#记得要重启ssh服务$ service ssh restart
3、登陆测试
如果用cmd:ssh命令要更改:ssh username(自己的用户名啊)@xx.xx.x ...
【linux】服务器安装jupyter&使用域名登陆
原文:https://zhuanlan.zhihu.com/p/340249373
搭建环境的前期准备
一台服务器
一个备案的域名
ssl证书(在阿里云搜索ssl,可以免费申请)
Jupyter 环境的简单安装
我使用的ubuntu 20.04系统
安装anconda
详细方案参考:[icon-url href=“https://www.lthero.cn/?p=1447” target="_blank"]网址[/icon-url]
安装 Jupyter Notebook
切换到python环境下:
1(base)$ conda install jupyter notebook
输入python,配置jupyter密码
1234(base)$ python>>> from notebook.auth import passwd>>> passwd() # 这一步之后输入你自己的密码并重复输入一次。会输出一长串加密后的东西,将其复制下来后面要用!!!>>> quit() # 退出 Pyt ...
【linux】终端命令符修改
终端命令符修改
编辑bashrc文件,执行:
1vim ~/.bashrc
按shift + g 跳到最下行,按 o 插入
123export PS1="\[\e[33;1m\]\u@\h:\w$ \[\e[0m\]"#或【从AWS服务器里面提取出来的】PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
32是绿色 33淡黄色
\u 指 user
\h 指 hostname
假如cd 进入了/home/lthero/Media/目录
\w 显示当前完整路径 /home/lthero/Media/
\W 只显示当前目录 /Media
修改后立即生效 ,执行:
1source ~/.bashrc
修改hostname
123$ hostname 要修改成的名字如$ hostname lthero
【linux】Unix&Linux大学教程(英文版本)
原名:Harley Hahn’s Internet Yellow Pages
作者网址:[icon-url href=“http://www.harley.com/index.shtml” target="_blank"]hitme[/icon-url]
引用:
人们可能想知道:假如 Ettrich 的女朋友没有那么漂亮并且还有点书呆子,那么开发一个真正的桌面环境还需要等多长时间呢?既然 KDE 的到来对 Linux 在全世界的流行有着极其深刻的影响,那么是不是不用争论,应该有更多的社会资源致力于鼓励漂亮的女人和程序员约会呢?引自第74页
来自豆瓣的评论:
实在是很好的一本书。 挺厚,但是读起来很流畅,分类也很好,都比较基础,全面。 特别是过滤器那些说的特别详细。语言还比较幽默,引人入胜。 你甚至可以把它当做一本小说来看,我当初就是如此。 强烈推荐。
pdf下载链接:
[c-downbtn type=“lz” url=“https://wwa.lanzoui.com/iTvE6tr5ysd” pwd=“9zjo”]下载[/c-downbtn]