![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 70
zhanglehes
这个作者很懒,什么都没留下…
展开
-
在macos上查看当前进程的栈信息
在调试程序时,如cpu莫名的高或低,一个常用的方式就是打印当前进行的调用栈,然后确认各线程的执行函数是否有异常。在linux系统中可以使用pstack命令,直接打印各线程的栈信息,可惜在macos上没有该命令。一种解决方式就是将代码迁移到linux平台上进行debug(事实上笔者也是这么做的,因为linux平台有很多熟悉的工具),但代码迁移存在成本(系统函数版本不一致),macos上的系统文件版本和linux平台上大概率是不同的。原创 2024-01-08 19:40:03 · 866 阅读 · 0 评论 -
linux:argument list too long的解决方案
我们使用“find”命令和“xargs”命令组合,先找出需要删除的文件,每找到一个匹配的文件,通过pipeline的方式传递给后面的“rm”命令进行操作。(猜测)shell命令在做通配符匹配时,会计算匹配到的文件名个数。一旦超过设定值,则会放弃该命令的执行,同时报错。原创 2022-10-11 10:28:49 · 821 阅读 · 0 评论 -
Linux pstack命令
概要打印运行进程的栈信息(快照),包括一个进程下的所有线程的栈信息。语法pstack pid解释pstack是封装了 gdb 功能的 shell 脚本,通过 " thread apply all bt " 的命令获得输出所有的线程堆栈信息,再用 sed 进行替换和过滤# Run GDB, strip out unwanted noise.$GDB --quiet $readnever -nx /proc/$1/exe $1 <<EOF 2>&1 |原创 2021-11-29 17:17:01 · 997 阅读 · 0 评论 -
linux lsof命令
概要lsof的全称是list of open file顾名思义,这个命令展示进程打开文件的信息。在linux中,文件夹、普通文件、socket、有名管道、unix domain socket这些都是属于文件范畴。An open file may be a regular file, a directory, a block special file, a character special file, an executing text reference, a library, a stream原创 2021-11-24 19:29:40 · 988 阅读 · 0 评论 -
linux pstree命令
概述显示所有服务器上的进程,以树状的形式表示其关系基本格式pstree [选项] [PID或用户名]选项 选项 含义 -a 显示启动每个进程对应的指令、参数等。 -c 不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。 -n 根据进程 PID 号来排序输出,默认是以程序名排序输出的。 -p原创 2021-11-19 17:50:55 · 1274 阅读 · 0 评论 -
linux mount命令
概要该命令用来挂在(虚拟)文件系统命令mount -t type [-o options] device dir 参数 解释 device 指定要挂载的设备,比如磁盘、光驱等 dir 指定把文件系统挂载到哪个目录 type 指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断 options原创 2021-11-11 10:12:07 · 4650 阅读 · 0 评论 -
linux curl命令
概要curl命令支持不同网络协议的数据传输(HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP or FILE),如通过http协议访问某样资源,或者从ftp上下载文件。它还支持同时下载多个文件,如curl ftp://ftp.example.com/file[1-20].jpeg语法curl [options] [URL...]选项flag 解释 示例 -o 指定新文件名 curl -.原创 2021-11-08 19:26:09 · 918 阅读 · 0 评论 -
linux ps命令
概要Linux ps (process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器形式ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 Jun03 ? 00:01:17 /sbin/initroot 2 0 0 Jun03 ? 00:00:00 [kthreadd]root原创 2021-11-05 12:00:42 · 154 阅读 · 0 评论 -
linux vmstat命令
概要The command is used to obtain information about memory, system processes, paging, interrupts, block I/O, disk, and CPU scheduling.该命令显示系统内存,系统进程,分页,中断,IO,CPU调度等信息命令vmstat [options][delay [count]]Options– various switches to customize the outpu.原创 2021-11-04 19:06:25 · 290 阅读 · 0 评论 -
linux top命令
简介反应系统中各进程使用资源的情况,并附带描述信息(如进程id)供其它系统命令使用。它的展示信息分为两个区,上半部为系统整理的资源使用情况,下半部为各进程(线程)的资源使用情况。上半区 值 解释 11:10:28 系统当前时间 Up 714 days, 23:21 系统运行时间 1 user 当前登录用户数 Load原创 2021-11-03 12:02:37 · 96 阅读 · 0 评论 -
Mesi协议与内存屏障
Mesi协议和内存屏障都是和计算机并发相关的概念。什么是Mesi协议计算机存储分层多核cpu带来的问题而随着CPU的发展,CPU逐渐发展成了多核,CPU可以同时使用多个核心控制器执行线程任务,当然CPU处理同时处理线程任务的速度也越来越快了,但随之也产生了一个问题,多核CPU每个核心控制器工作的时候都会有自己独立的CPU缓存,每个核心控制器都执行任务的时候都是操作的自己的CPU缓存,CPU1与CPU2它们之间的缓存是相互不可见的。解决这个问题的根本其实就是需要一种机制来保证一个人原创 2021-10-14 19:13:43 · 707 阅读 · 0 评论 -
wallclock time 和 cpu time 区别(转载)
wallclock time 和 cpu time 区别_星辰旋风的博客-CSDN博客转载 2021-09-17 15:39:14 · 755 阅读 · 0 评论 -
linux内核设计与实现读书笔记 第六章
什么是中断A better solution is to provide a mechanism for the hardware to signal to the kernel when attention is needed.This mechanism is called an interrupt. 中断实施的物理过程An interrupt is physically produced by electronic signals originating from hardware dev原创 2021-02-26 14:31:13 · 140 阅读 · 0 评论 -
linux内核设计与实现读书笔记 第五章
系统函数的功能These interfaces give applications controlled access to hardware, a mechanism with which to create new processes and communicate with existing ones, and the capability to request other operating system resources.系统函数的三个作用First, it provides an原创 2021-02-22 15:26:47 · 117 阅读 · 0 评论 -
linux内核设计与实现读书笔记 第四章
进程调度进程调度器的作用The process scheduler decides which process runs, when, and for how long.By deciding which process runs next, the scheduler is responsible for best utilizing the system and giving users the impression that multiple processes are executing原创 2021-02-02 19:44:03 · 127 阅读 · 0 评论 -
linux内核设计与实现读书笔记 第三章
进程管理对于进程的两种虚拟化方式On modern operating systems, processes provide two virtualizations: a virtualized processor and virtual memory.如何生成一个新的进程A process begins its life when, not surprisingly, it is created. In Linux, this occurs by means of the fork() s原创 2021-01-28 11:46:12 · 118 阅读 · 0 评论 -
详解Linux内核进程调度函数schedule()的触发和执行时机(转载)
内核的调度操作分为触发和执行两个部分,触发时仅仅设置一下当前进程的TIF_NEED_RESCHED标志,执行的时候则是通过schedule()函数来完成进程的选择和切换。当前进程的thread_info->flags中TIF_NEED_RESCHED位表示需要调用schedule()函数进行调度。内核在两种情况下会设置该标志,一个是在时钟中断进行周期性的检查时,另一个是在被唤醒进程的优先级比正在运行的进程的优先级高时。周期性地更新当前任务的状态时:定时中断处理函数中会调用schedule_ti转载 2020-11-12 14:25:16 · 1403 阅读 · 0 评论 -
linux内核设计与实现读书笔记 第一章
目录linux内核设计与实现读书笔记 第一章广义上的操作系统Linux kernel做哪些事情内核所在的位置CPU所处的三种状态广义上的操作系统linux kernel c library(system call,other utilities) 系统工具(vi, gdb) 系统进程(服务)(ssh, shell)Linux kernel做哪些事情响应中断请求(interrupt handler) 通过调度器(scheduler)分享cpu占用 内存管..原创 2020-10-28 17:34:23 · 128 阅读 · 0 评论