Linux 复习——基础(二)

库文件
定义:存放的是预先编译好的方法的集合
头文件位置:/usr/include
可执行程序/命令:/bin
库文件:/lib
静态库格式:libxxx.a
动态库:libxxx.so
ldd:查看可执行程序用到了哪些共享库

静态库的使用:
ar crv libxxx.a add.o max.o *.o(add和max为例)(c 创建库 ,r 把方法添加到库中,v 显示信息)
共享库:
gcc -shared -fPIC -o libxxx.so *.o

库的使用:-L 路径;-l 库名(不是“1”)

五大部件
是什么:运算器、控制器、存储器、输入设备和输出设备。

操作系统:操作系统(OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

进程:——————
并发:并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
并行:并行是指“并排行走”或“同时实行或实施”。
在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。

进程
复制进程:fork()
替换进程:exec()
僵死进程:当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
pcb:进程控制块,进程存在的唯一标识。

写时拷贝:——————

信号:kill-signal
15:默认kill
9:强制结束
2:复制
17:子进程结束后给父进程发送的

文件描述符:
open write read close
父进程打开的文件,子进程也可以访问

进程间通信
**管道:**①有名无名;②写入的数据在内存;③是半双工通信
mkfifo:创建有名管道,可以在任意进程间通信
pipe():创建无名管道,只能在内部通信
参考这位大佬的总结

线程

pthread_creat 创建线程
pthread_exit() 退出线程
pthread_join() 合并线程/等待子线程

同步方法:信号量(二值、计数)
互斥锁:保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。
读写锁:一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。

死锁:指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
产生的原因:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

线程安全:同步 可重入函数
strtok strtok_r :用于分割字符串,会使得线程变得不安全
ps -eLf 【L显示出线程信息】

网络
分层:应用层、传输层、网络层、数据链路层
ip地址:互联网协议地址,又译为网际协议地址。是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
MAC地址:媒体存取控制位址,也称为局域网地址,MAC位址,以太网地址或物理地址,它是一个用来确认网络设备位置的位址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。

端口号:类似门牌号。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是0——65535。

网络协议:
http:应用层,简单的请求-响应协议,通常运行在TCP之上
tcp:传输层,是一种面向连接的、可靠的、基于字节流的传输层通信协议
ip:网络层,为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务
arp:网络层,地址解析协议,根据IP地址获取物理地址的一个TCP/IP协议
udp:用户数据报协议,无连接、不可靠、快速传输,基于数据报。UDP只管发,不管你收没收到,TCP会确认你收到了一个包后再发下一个

tcp:面向连接、可靠、流式服务,常用于文件
udp:无连接 、不可靠、数据报服务,常用于视频
可以使用同一个端口:80

面向连接:三次握手、四次挥手
可靠:应答确认、超时重传、滑动窗口(流量控制)
流式服务:多次的send(进入发送缓冲区)有可能被对方一次recv就结束了,从接收缓冲区中接收,即粘包问题。

套接字:————
三次握手:————
四次挥手:————

connect()执行后开始执行三次握手,成功即表示连接建立
listen()监听队列
accept()完成三次握手后对其进行处理并得到描述符c

TIME_WAIT存在的意义:
①为了可靠地中止tcp连接;
②让迟来的报文得以被识别并被丢弃。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值