【操作系统】进程互斥访问&同步问题综合
进程互斥访问&同步问题综合
1窗口n客人叫号
面包师有很多面包,由n名销售人员卖。每个客人进店后取号,并等待叫号。当一名销售人员空闲,就叫下一个号。
n个销售【服务窗口】,n个客人
1234567891011121314151617181920212223242526272829303132333435363738394041int waitnum=0;//取号值int servernum=0;//叫号值semaphore mutex_waitnum=1,mutex_servernum=1;//用来保证修改num过程是原子性//mutex_waitnum和mutex_servernum只是锁//waitnum作为状态变量customer{ while(1){ P(mutex_waitnum); //取号 waitnum+=1; V(mutex_waitnum); }}server{ while(1){ P(mutex_servernum); ...
【树莓派脸部追踪】
树莓派脸部追踪
硬件材料
树莓派4B、云台、摄像头
思路
1、电脑上显示摄像头拍摄的视频,并得到人脸坐标,将人脸坐标发给树莓派。
2、树莓派来控制舵机旋转
3、电脑和树莓派之间和socket通信
4、树莓派上使用motion将摄像头内容输出到“192.168.6.179:8081”,从而让电脑获取视频源【192.168.6.179是树莓派地址】
注意:
1、树莓派可能需要关掉防火墙:ufw disable
2、树莓派要先启动motion:sudo motion【只用启动一次即可,一直在后台运行】
人脸跟踪的算法
第一种
获得人脸矩阵中心点坐标【x,y】,再获得视频中心坐标,计算两者误差,从而让摄像头旋转相应角度,旋转时要尽量一度一度的转,不要过激,否则容易让抖动。
当然,我写的只是简单的计算两个中心误差再旋转,缺点是旋转不平滑,改进方式是用PID算法
PID算法参考1:https://pyimagesearch.com/2019/04/01/pan-tilt-face-tracking-with-a-raspberry-pi-and-opencv/
PID算法参考2:https:// ...
【邮箱接口调用】
邮箱接口调用
调用
1234567891011121314#接收方receiver='111111@qq.com'#内容content='testtesttesttesttest'params = { 'reciever': receiver, #邮件标题 'title': f'邮件标题', #主要内容 'content':content, #内部大标题 'innerTitle': f'内置标题'}res = requests.post(url='api', data=params)
效果图
【浙江|上海】青年大学习自动打卡
【浙江|上海】青年大学习一键打卡
Github项目:https://github.com/lthero-big/ZheJiangYouthstudyAutoSign
特色
[x] 脚本一键运行,直接更新后台数据完成打卡:tada:
[x] 支持为多人批量打卡:thumbsup:
[x] 支持各平台服务器部署,可设置定时打卡任务:heavy_check_mark:
更新内容
2024.3.28更新: 感谢用户@b3nguang,新增功能:返回打卡完成的截屏图片的URL
截止到2024.3.28,脚本依可用
2023.3.12更新: 感谢吾爱用户:ahov 提供上海大学习接口,具体请查看原帖
目前已经添加上海青年大学习打卡脚本:ShangHaiAuto.py
代码思路:
每个微信账号有唯一的openid
在每次打开青年大学习网页时,后台会根据openid生成accessToken
后续的所有与服务器交互的信息,都需要用accessToken才能拿到
只要拿到个人信息,再将个人信息和accessToken提交即可打卡完成
使用
运行代码前,需要先获得openid,每个账号只要获得 ...
【马克思】《1844年经济学哲学手稿》
随笔
知乎问题
突然意识自己曾经引以为豪的编程其实是一种工具,这是一种悲哀吗?
原回答链接
原回答:
这种悲哀感的本质,其实就是马克思在《1844年经济学哲学手稿》中提出的“四个异化”(的前三个):
1,工人同自己的劳动产品相异化。
2,工人同自己的劳动相异化。
3,人同自己的类本质相异化。
马克思认为人区别于动物的最大特点,就是人本质上就需要“工作”,既“创造性地改造环境”。马克思所说的工作,其实就是后来“马斯洛需求层次理论”中的“自我实现”需求。
这也是马克思的牛逼之处,理论精髓之一——人的本质就是需要工作、热爱工作的,工作是人之所以为“人”的重要组成部分。
但是
资本主义世界的雇佣关系,将工作这个部分严重扭曲了,以至于将“工作”与“人性”剥离开来。在资本主义世界中,无论是宏观角度还是微观角度,工作都与人性割裂开来,甚至让“工作”与“人性”变成了对立的存在。
所以人们普遍认为,下班才是人生的开始。
所以人们才需要丰富的夜生活,才需要各种宣泄和放纵。
而这,也助长了消费主义。
但是消费带来的快乐,终究只是隔靴搔痒,甚至是饮鸩止渴。消费并不能真正填补人性被剥离的空虚。
特别是,被剥离的 ...
【python爬虫】美拍网图片下载
美拍网图片下载
难度不大,网站对f12和右键有限制,但不是大问题。
网站没有反爬,至少没有给图片加防盗链,下载的图片并不是最高清,但清晰度还可以。
多线程代码直接复制之前的,其它的也大部分是走流程,固定套路
网站上图片全部为jpg格式,所以无需考虑png格式下载
唯一需要注意的是,有些图片src链接并不完整,需要自行判断和补全
网站:https://4zipai.net
使用方式:
先:输入路径
后:输入网址,如:‘https://4zipai.net/selfies/202207/139004.html’
代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758import osimport reimport threadingimport requestsfrom bs4 import BeautifulSoupimport timeheaders = { 'Cookie': ...
【hexo更新到GitHub后博客内容未变】
hexo更新到GitHub后博客内容未变
问题描述:hexo d -g可以将文章上传到github的仓库,但打开网页(github-page)后,发现内容并未更新
原因:github-page对私有仓库不免费
解决方法:将仓库设置为公开
过程:我尝试过网上各种方法,清除.deploy_git、hexo clean等,但都无效。我检查了github-pages 的更新状态,一直是 17 days ago Active。再联想到“github-page”对私有仓库不是免费的,而我虽然之前一直把项目设置为私有,但我开过github学生包,里面包含免费的私有仓库的权益,但最近学生包过期了,于是就不能使用gihub-page。
【linux】学习笔记Chap_26_系统进程管理
系统进程管理
在Unix中,所有信息都由某个文件或程序提供,简单来说,文件只是个输入输出对象,而一个进程才是执行的对象
本章将搞懂 :
进程从哪来?进程如何被系统控制?如何控制自己的进程?
系统如何控制进程
准确说:进程是一个被装载到内存的程序,全部的程序数据、信息也会被放入内存中。
所有的进程被内核kernel管理,当一个进程创建时,内核指定一个 Process ID(identification number)给进程,以便追踪进程信息。
内核会管一个进程信息表,由**PID和进程名构成,**有了这个表,内核将掌握控制进程的必要信息。
小型Unix系统可以同时执行100多进程,大Unix可达到上千进程。
Cpu time
先介绍Cpu time, 以前电脑只有一个cpu,而单个cpu要面对不同进程任务,为了雨均沾,给每个进程设置一个cputime 如10毫秒。cpu从 等待执行的进程列表中选出一个进程,让其执行10毫秒,时间一到就选出下一个进程,而上一个进程就要记录当前运行的状态,以便下次再继续。
System call
当一个程序要执行时,要向内核(ke ...
【linux】学习笔记Chap_13_Shell_variable
【linux】学习笔记Chap_13_Shell_variable
子进程或子shell
在登陆后的shell可以作为父shell
如果输入vi 命令 进入 另一个进程 则称为子进程
如果输入 bash 也可以创建一个新的shell 也是子sell
global and local 变量
像IGNOREEOF就是全局变量,他们可以用于任何进程 而且变量唯一
环境变量全部用大写表示 一般以小写命令局部变量(shell)变量
全部变量既是shell 也是 environment 变量不存在单纯的环境变量
想比较单纯shell变量和全部变量可以使用env
若只在set中,不在env中就是纯shell变量 (set中变量也比env多)
两者都在的就是全部变量
默认创建的变量都是shell变量
创建环境变量-----export
export 来创建一个shell + environment 变量
12lthero=smartexport lthero
即可生效
或
1lthero=smart;export lthero
又或
1export lthero=smart HOME="/e ...
【linux】学习笔记Chap_14_Init_file
Init_file
初始文件
命令习惯rc
run commonds 是一种配置文件,如 .bashrc .exrc
这些命令后在某个程序启动时自动运行
作为一个命名习惯, 如 我写了个foo 的程序 那么将初始化文件
写作为 .foorc (foo 只是随便哪个名字)
文档编辑器
nano 和 pico 和 vi
vi 常用于 CLI 命令行接口
nano 和 pico 常用于GUI 图形化接口
Shell 几种形式
shell 的几种形式 login shell && non login shell
交互的划分 interactive shell && non-interactive shell
login shell
login 需要用户名密码进入 ,一般的 ssh (secure shell) 登陆都用login shell
login shell 初始化,会执行 login file 和 环境 file ,顺序如下
/etc/profile 这个是全局的配置 不管哪个用户登陆都会读取
/etc/profile里面会执行profile.d文 ...











