图书介绍

UNIX系统内幕PDF|Epub|txt|kindle电子书版本网盘下载

UNIX系统内幕
  • (美)瓦哈兰(Vahalia,U.)著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115113009
  • 出版时间:2003
  • 标注页数:601页
  • 文件大小:68MB
  • 文件页数:637页
  • 主题词:UNIX操作系统-高等学校-教材-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

UNIX系统内幕PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1 INTRODUCTION1

1.1 Introduction1

1.1.2 The Beginning2

1.1.1 A Brief History2

1.1.3 Proliferation3

1.1.4 BSD4

1.1.6 Commercialization5

1.1.5 System Ⅴ5

1.1.8 Standards6

1.1.7 Mach6

1.1.9 OSF and UI7

1.2 The Mandate for Change8

1.1.10 SVR4 and Beyond8

1.2.2 Networking9

1.2.1 Functionality9

1.2.4 Hardware Changes10

1.2.3 Performance10

1.2.6 Paradigm Shifts11

1.2.5 Quality Improvement11

1.2.8 Smallis Beautiful12

1.2.7 Other Application Domains12

1.2.9 Flexibility13

1.3.1 What was Good about UNIX?14

1.3 Looking Back,Looking Forward14

1.3.2 What is Wrong with UNIX?15

1.4 The Scope of this Book16

1.5 References17

2.1 Introduction19

2 THE PROCESS AND THE KERNEL19

2.2 Mode,Space,and Context22

2.3 The Process Abstraction24

2.3.1 Process State25

2.3.2 Process Context26

2.3.3 User Credentials27

2.3.4 The u Area and the proc Structure28

2.4 Executing in Kernel Mode30

2.4.2 Interrupt Handling31

2.4.1 The System Call Interface31

2.5 Synchronization33

2.5.2 Interrupts35

2.5.1 Blocking Operations35

2.6 Process Scheduling37

2.5.3 Multiprocessors37

2.7 Signals38

2.8.1 forkand exec39

2.8 New Processes and Programs39

2.8.3 fork Optimization41

2.8.2 Process Creation41

2.8.4 Invoking aNew Program42

2.8.5 Process Termination43

2.8.6 Awaiting Process Termination44

2.10 Exercises45

2.9 Summary45

2.8.7 Zombie Processes45

2.11 References46

3.1 Introduction48

3 THREADS AND LIGHTWEIGHT PROCESSES48

3.1.2 Multiple Threads and Processors49

3.1.1 Motivation49

3.2 Fundamental Abstractions52

3.1.3 Concurrency and Parallelism52

3.2.2 Lightweight Processes53

3.2.1 Kernel Threads53

3.2.3 User Threads55

3.3.1 Semantics offork58

3.3 Lightweight Process Design—Issues to Consider58

3.3.2 Other System Calls59

3.3.3 Signal Delivery and Handling60

3.3.5 Stack Growth61

3.3.4 Visibility61

3.4.2 Implementing Threads Libraries62

3.4.1 The Programming Interface62

3.4 User-Level Threads Libraries62

3.5 Scheduler Activations64

3.6.1 Kernel Threads65

3.6 Multithreading in Solaris and SVR465

3.6.2 Lightweight Process Implementation66

3.6.3 User Threads67

3.6.5 Interrupt Handling68

3.6.4 User Thread Implementation68

3.7.1 The Mach Abstractions—Tasks and Threads70

3.7 Threads in Mach70

3.6.6 System Call Handling70

3.7.2 Mach C-threads71

3.8.1 The UNIX Interface72

3.8 Digital UNIX72

3.8.2 System Calls and Signals74

3.8.3 The pthreads Library75

3.9.1 Programming Models76

3.9 Mach 3.0 Continuations76

3.9.2 Using Continuations77

3.9.3 Optimizations78

3.10 Summary79

3.9.4 Analysis79

3.12 References80

3.11 Exercises80

4.1 Introduction83

4 SIGNALS AND SESSION MANAGEMENT83

4.2.1 Signal Handling84

4.2 Signal Generation and Handling84

4.2.3 Typical Scenarios87

4.2.2 Signal Generation87

4.2.4 Sleep and Signals88

4.3 Unreliable Signals89

4.4.1 Primary Features90

4.4 Reliable Signals90

4.4.2 The SVR3 Implementation91

4.4.3 BSD Signal Management92

4.5 Signals in SVR493

4.6 Signals Implementation94

4.7 Exceptions95

4.6.2 Delivery and Handling95

4.6.1 Signal Generation95

4.8 Mach Exception Handling96

4.8.1 Exception Ports97

4.8.3 Debugger Interactions98

4.8.2 Error Handling98

4.9.1 Common Concepts99

4.9 Process Groups and Terminal Management99

4.8.4 Analysis99

4.9.2 The SVR3 Model100

4.9.3 Limitations102

4.9.4 4.3BSD Groups and Terminals103

4.9.5 Drawbacks104

4.10.1 Motivation105

4.10 The SVR4 Sessions Architecture105

4.10.2 Sessions and Process Groups106

4.10.4 Controlling Terminals107

4.10.3 Data Structures107

4.10.5 The 4.4BSD Sessions Implementation109

4.12 Exercises110

4.11 Summary110

4.13 References111

5.1 Introduction112

5 PROCESS SCHEDULING112

5.2 Clock Interrupt Handling113

5.2.1 Caliouts114

5.2.2 Alarms115

5.3 Scheduler Goals116

5.4 Traditional UNIX Scheduling117

5.4.1 Process Priorities118

5.4.2 Scheduler Implementation119

5.4.3 Run Queue Manipulation120

5.4.4 Analysis121

5.5.1 The Class-Independent Layer122

5.5 The SVR4 Scheduler122

5.5.2 Interface to the Scheduling Classes124

5.5.3 The Time-Sharing Class126

5.5.4 The Real-Time Class127

5.5.6 Analysis129

5.5.5 The priocntl System Call129

5.6 Solaris 2.x Scheduling Enhancements130

5.6.2 Multiprocessor Support131

5.6.1 Preemptive Kernel131

5.6.4 Priority Inversion133

5.6.3 Hidden Scheduling133

5.6.5 Implementation of Priority Inheritance135

5.6.6 Limitations of Priority Inheritance137

5.6.7 Turnstiles138

5.7 Scheduling in Mach139

5.6.8 Analysis139

5.7.1 Multiprocessor Support140

5.8 The Digital UNIX Real-Time Scheduler142

5.9 Other Scheduling Implementations143

5.8.1 Multiprocessor Support143

5.9.2 Deadline-Driven Scheduling144

5.9.1 Fair-Share Scheduling144

5.9.3 A Three-Level Scheduler145

5.11 Exercises146

5.10 Summary146

5.12 References147

6.1 Introduction149

6 INTERPROCESS COMMUNICATIONS149

6.2.1 Signals150

6.2 Universal IPC Facilities150

6.2.2 Pipes151

6.2.3 SVR4Pipes152

6.2.4 Process Tracing153

6.3.1 Common Elements155

6.3 System Ⅴ IPC155

6.3.2 Semaphores156

6.3.3 Message Queues160

6.3.4 Shared Memory162

6.3.5 Discussion164

6.4 Mach IPC165

6.4.1 Basic Concepts166

6.5.1 Message Data Structures167

6.5 Messages167

6.5.2 Message Passing Interface169

6.6.2 The Port Data Structure170

6.6.1 The Port Name Space170

6.6 Ports170

6.6.3 Port Translations171

6.7 Message Passing172

6.7.1 Transferring Port Rights173

6.7.2 Out-of-Line Memory175

6.8 Port Operations177

6.7.4 Notifications177

6.7.3 Control Flow177

6.8.2 Backup Ports178

6.8.1 Destroying a Port178

6.8.3 Port Sets179

6.8.4 Port Interpolation180

6.9 Extensibility181

6.10 Mach 3.0 Enhancements182

6.10.3 User-Reference Counting of Send Rights183

6.10.2 Mach 3.0 Notifications183

6.10.1 Send-Once Rights183

6.11 Discussion184

6.13 Exercises185

6.12 Summary185

6.14 References186

7.1 Introduction187

7 SYNCHRONIZATION AND MULTIPROCESSING187

7.2 Synchronization in Traditional UNIX Kernels188

7.2.2 Sleep and Wakeup189

7.2.1 Interrupt Masking189

7.2.3 Limitations of Traditional Approach190

7.3.1 Memory Model191

7.3 Multiprocessor Systems191

7.3.2 Synchronization Support193

7.4 Multiprocessor Synchronization Issues195

7.3.3 Software Architecture195

7.4.2 The Thundering Herd Problem196

7.4.1 The Lost Wakeup Problem196

7.5 Semaphores197

7.5.2 Event-Wait Using Semaphores198

7.5.1 Semaphores to Provide Mutual Exclusion198

7.5.4 Drawbacks of Semaphores199

7.5.3 Semaphores to Control Countable Resources199

7.5.5 Convoys200

7.6 Spin Locks201

7.6.1 Use of Spin Locks202

7.7 Condition Variables203

7.7.1 Implementation Issues204

7.7.3 Blocking Locks205

7.7.2 Events205

7.8.1 Design Considerations206

7.8 Read-Write Locks206

7.8.2 Implementation207

7.10.1 Deadlock Avoidance209

7.10 Other Considerations209

7.9 Reference Counts209

7.10.3 To Block or to Spin211

7.10.2 Recursive Locks211

7.10.5 Granularity and Duration212

7.10.4 What to Lock212

7.11.1 SVR4.2/MP213

7.11 Case Studies213

7.11.2 Digitel UNIX214

7.11.3 Other Implementations216

7.13 Exercises217

7.12 Summary217

7.14 References218

8.1 Introduction220

8 FILE SYSTEM INTERFACE AND FRAMEWORK220

8.2.1 Files and Directories221

8.2 The User Interface to Files221

8.2.2 File Attributes223

8.2.3 File Descriptors225

8.2.4 File I/O227

8.2.6 File Locking228

8.2.5 Scatter-GatherI/O228

8.3 File Systems229

8.3.1 Logical Disks230

8.4.1 Symbolic Links231

8.4 Special Files231

8.5 File System Framework233

8.4.2 Pipes and FIFOs233

8.6.1 Objectives234

8.6 The Vnode/Vfs Architecture234

8.6.2 Lessons from DeviceI/O235

8.6.3 Overview ofthe Vnode/Vfs Interface238

8.7.2 Vnodes and Open Files240

8.7.1 Objectives240

8.7 Implementation Overview240

8.7.3 The Vnode241

8.7.4 Vnode Reference Count242

8.7.5 The Vfs Object243

8.8.1 The Per-File Private Data244

8.8 File-System-Dependent Objects244

8.8.2 The vnodeops Vector245

8.8.3 File-System-Dependent Parts of the Vfs Layer246

8.9.1 The Virtual File System Switch247

8.9 Mounting a File System247

8.9.2 mount Implementation248

8.10.1 Pathname Traversal249

8.10 Operations on Files249

8.9.3 VFS_MOUNT Processing249

8.10.2 Directory Lookup Cache250

8.10.3 The VOP_LOOKUP Operation251

8.10.4 Opening a File252

8.10.7 User Credentials253

8.10.6 File Attributes253

8.10.5 File I/O253

8.11 Analysis254

8.11.1 Drawbacks ofthe SVR4 Implementation255

8.11.2 The 4.4BSD Model256

8.12 Summary257

8.11.3 The OSF/1 Approach257

8.13 Exercises258

8.14 References259

9.1 Introduction261

9 FILE SYSTEM IMPLEMENTATIONS261

9.2 The System Ⅴ File System(s5fs)262

9.2.2 Inodes263

9.2.1 Directories263

9.2.3 The Superblock266

9.3.2 Inode Lookup267

9.3.1 In-Core Inodes267

9.3 S5fs Kernel Organization267

9.3.3 File I/O268

9.3.4 Allocating and Reclaiming Inodes270

9.4 Analysis of s5fs271

9.6 Hard Disk Structure272

9.5 The Berkeley Fast File System272

9.7.1 Blocks and Fragments273

9.7 On-Disk Organization273

9.7.2 Allocation Policies274

9.8 FFS Functionality Enhancements275

9.9 Analysis276

9.10.1 The Memory File System278

9.10 Temporary File Systems278

9.10.2 The tmpfs File System279

9.11.1 The Specfs File System280

9.11 Special-Purpose File Systems280

9.11.2 The/proc File System281

9.11.4 The Translucent File System283

9.11.3 The Processor File System283

9.12 The Old Buffer Cache284

9.12.1 Basic Operation285

9.12.3 Advantages286

9.12.2 Buffer Headers286

9.12.5 Ensuring File System Consistency287

9.12.4 Disadvantages287

9.14 Exercises288

9.13 Summary288

9.15 References289

10.1 Introduction291

10 DISTRIBUTED FILE SYSTEMS291

10.2.1 Design Considerations292

10.2 GeneraI Characteristics of Distributed File Systems292

10.3 Network File System(NFS)293

10.3.2 Design Goals294

10.3.1 User Perspective294

10.3.3 NFS Components295

10.3.4 Statelessness297

10.4.1 Extended Data Representation(XDR)298

10.4 The Protocol Suite298

10.4.2 Remote Procedure Calls(RPC)300

10.5 NFS Implementation301

10.5.2 File Handles302

10.5.1 Control Flow302

10.5.4 Pathname Lookup303

10.5.3 The Mount Operation303

10.6.1 Open File Permissions304

10.6 UNIX Semantics304

10.6.3 Reads and Writes305

10.6.2 Deletion of Open Files305

10.7.2 Client-Side Caching306

10.7.1 Performance Bottlenecks306

10.7 NFS Performance306

10.7.3 Deferral ofWrites307

10.7.4 The Retransmissions Cache308

10.8.1 The Auspex Functional Multiprocessor Architecture309

10.8 Dedicated NFS Servers309

10.8.2 IBM's HA-NFS Server310

10.9.1 NFS Access Control312

10.9 NFS Security312

10.9.3 Root Remapping313

10.9.2 UID Remapping313

10.10 NFS Version 3314

10.12 RFS Architecture315

10.11 Remote File Sharing(RFS)315

10.12.1 Remote Message Protocol316

10.13.1 Remote Mount317

10.13 RFS Implementation317

10.12.2 Stateful Operation317

10.13.2 RFS Clients and Servers319

10.13.3 Crash Recovery320

10.14 Client-Side Caching321

10.13.4 Other Issues321

10.14.1 Cache Consistency322

10.15.1 Scalable Architecture323

10.15 The Andrew File System323

10.15.2 Storage and Name Space Organization324

10.15.3 Session Semantics325

10.16.1 Caching and Consistency326

10.16 AFS Implementation326

10.16.3 Security327

10.16.2 Pathname Lookup327

10.17 AFS Shortcomings328

10.18.1 DFS Architecture329

10.18 The DCE Distributed File System(DCE DFS)329

10.18.2 Cache Consistency330

10.18.4 Other DFS Services332

10.18.3 The Token Manager332

10.18.5 Analysis333

10.20 Exercises334

10.19 Summary334

10.21 References335

11.1 Introduction338

11 ADVANCED FILE SYSTEMS338

11.2 Limitations of Traditional File Systems339

11.2.1 FFS Disk Layout340

11.2.2 Predominance of Writes341

11.2.4 Crash Recovery342

11.2.3 Metadata Updates342

11.3 File System Clustering(Sun-FFS)343

11.4.1 Basic Characteristics344

11.4 The Journaling Approach344

11.5 Log-Structured File Systems345

11.6 The 4.4BSD Log-Structured File System346

11.6.2 Data Retrieval347

11.6.1 Writing the Log347

11.6.3 Crash Recovery348

11.6.5 Analysis349

11.6.4 The Cleaner Process349

11.7 Metadata Logging350

11.7.1 Normal Operation351

11.7.2 Log Consistency352

11.7.3 Recovery353

11.7.4 Analysis354

11.8 The Episode File System355

11.8.1 Basic Abstractions356

11.8.2 Structure357

11.8.4 Other Features358

11.8.3 Logging358

11.9 Watchdogs359

11.9.2 Message Channels360

11.9.1 Directory Watchdogs360

11.9.3 Applications361

11.10 The 4.4BSD Portal File System362

11.10.1 Using Portals363

11.11.1 Framework and Interface364

11.11 Stackable File System Layers364

11.11.2 The SunSoft Prototype366

11.12 The 4.4BSD File System Interface367

11.14 Exercises368

11.13 Summary368

11.12.1 The Nullfs and Union Mount File Systems368

11.15 References369

12.1 Introduction372

12 KERNEL MEMORY ALLOCATION372

12.2.1 Evaluation Criteria374

12.2 Functional Requirements374

12.3 Resource Map Allocator376

12.3.1 Analysis377

12.4 Simple Power-of-Two Free Lists379

12.4.1 Analysis380

12.5 The McKusick-Karels Allocator381

12.6 The Buddy System383

12.5.1 Analysis383

12.6.1 Analysis385

12.7.1 Lazy Coalescing386

12.7 The SVR4 Lazy Buddy Algorithm386

12.7.2 SVR4 Implementation Details387

12.8.1 Garbage Collection388

12.8 The Mach-OSF/1 Zone Allocator388

12.8.2 Analysis389

12.9 A Hierarchical Allocator for Multiprocessors390

12.10.1 Object Reuse392

12.10 The Solaris 2.4 Slab Allocator392

12.9.1 Analysis392

12.10.2 Hardware Cache Utilization393

12.10.4 Design and Interfaces394

12.10.3 Allocator Footprint394

12.10.5 Implementation395

12.10.6 Analysis396

12.11 Summary397

12.12 Exercises398

12.13 References399

13.1 Introduction400

13 VIRTUAL MEMORY400

13.1.1 Memory Management in the Stone Age401

13.2.1 Functional Requirements404

13.2 Demand Paging404

13.2.2 The Virtual Address Space406

13.2.4 The Swap Area407

13.2.3 Initial Access to a Page407

13.2.5 Translation Maps408

13.2.6 Page Replacement Policies409

13.3 Hardware Requirements410

13.3.1 MMU Caches412

13.3.2 The Intel 80x86413

13.3.3 The IBM RS/6000416

13.3.4 The MIPS R3000419

13.4.1 Physical Memory421

13.4 4.3BSD—A Case Study421

13.4.2 The Address Space423

13.4.3 Where IsthePage?424

13.4.4 Swap Space426

13.5.1 Process Creation427

13.5 4.3BSD Memory Management Operations427

13.5.2 Page Fault Handling428

13.5.3 The Free Page List431

13.5.4 Swapping432

13.6 Analysis433

13.7 Exercises435

13.8 References436

14.1 Motivation437

14 THE SVR4 VM ARCHITECTURE437

14.2 Memory-Mapped Files438

14.3 VM Design Principles440

14.2.1 mmap and Related System Calls440

14.4 Fundamental Abstractions441

14.4.1 Physical Memory442

14.4.2 The Address Space443

14.4.3 Address Mappings444

14.4.4 Anonymous Pages445

14.4.5 Hardware Address Translation446

14.5.1 seg_vn448

14.5 Segment Drivers448

14.5.2 seg_map449

14.5.5 seg_kp450

14.5.4 seg_kmem450

14.5.3 seg_dev450

14.6 The Swap Layer451

14.7 VM Operations452

14.7.2 Anonymous Page Handling453

14.7.1 Creating a New Mapping453

14.7.4 Sharing Anonymous Pages455

14.7.3 Process Creation455

14.7.5 Page Fault Handling457

14.7.6 Shared Memory458

14.7.7 Other Components459

14.8.1 Vnode Interface Changes460

14.8 Interaction with the Vnode Subsystem460

14.8.2 Unifying File Access461

14.8.3 Miscellaneous Issues463

14.9.2 Virtual Swap Management464

14.9.1 Extended Swap Space464

14.9 Virtual Swap Space in Solaris464

14.10 Analysis466

14.9.3 Discussion466

14.11.1 Causes of High Fault Rates468

14.11 Performance Improvements468

14.11.2 SVR4 Enhancements to the SunOS VM Implementation469

14.12 Summary470

14.11.3 Results and Discussion470

14.14 References471

14.13 Exercises471

15.2 Mach Memory Management Design473

15.1 Introduction473

15 MORE MEMORY MANAGEMENT TOPICS473

15.2.2 Programming Interface474

15.2.1 Design Goals474

15.2.3 Fundamental Abstractions476

15.3.1 Copy-on-Write Sharing478

15.3 Memory Sharing Facilities478

15.3.2 Read-Write Sharing480

15.4.1 Memory Object Initialization481

15.4 Memory Objects and Pagers481

15.4.2 Interface between the Kernel and the Pager482

15.5 External and Internal Pagers484

15.4.3 Kernel-Pager Interactions484

15.5.1 A Network Shared Memory Server485

15.6 Page Replacement487

15.7 Analysis489

15.8 Memory Management in 4.4BSD490

15.9 Translation Lookaside Buffer(TLB)Consistency492

15.9.1 TLB Consistency on a Uniprocessor493

15.10 TLB Shootdown in Mach494

15.9.2 Multiprocessor Issues494

15.10.1 Synchronization and Deadlock Avoidance495

15.10.2 Discussion496

15.11.1 SVR4/MP497

15.11 TLB Consistency in SVR4 and SVR4.2 UNIX497

15.11.2 SVR4.2/MP498

15.11.3 Lazy Shootdowns499

15.11.5 Discussion500

15.11.4 Immediate Shootdowns500

15.12 Other TLB Consistency Algorithms501

15.13 Virtually Addressed Caches502

15.13.1 Mapping Changes504

15.13.3 DMA Operations505

15.13.2 Address Aliases505

15.13.4 Maintaining Cache Consistency506

15.14 Exercises507

15.13.5 Analysis507

15.15 References508

16.2 Overview511

16.1 Introduction511

16 DEVICE DRIVERS AND I/O511

16.2.1 Hardware Configuration513

16.2.2 Device Interrupts514

16.3 Device Driver Framework516

16.3.1 Classifying Devices and Drivers516

16.3.2 Invoking Driver Code517

16.3.3 The Device Switches518

16.3.4 Driver Entry Points519

16.4 The I/O Subsystem520

16.4.1 Major and Minor Device Numbers521

16.4.2 Device Files522

16.4.3 The specfs File System523

16.4.4 The Common snode524

16.4.5 Device Cloning526

16.4.6 I/O to a Character Device526

16.5 The poll System Call527

16.5.1 poll Implementation528

16.5.2 The 4.3BSD select System Call529

16.6 Block I/O530

16.6.1 The buf Structure531

16.6.2 Interaction with the Vnode532

16.6.3 Device Access Methods533

16.6.4 Raw I/O to a Block Device535

16.7 The DDI/DKI Specification535

16.7.1 General Recommendations537

16.7.2 Section 3 Functions537

16.7.3 Other Sections538

16.8 Newer SVR4 Releases539

16.8.1 Multiprocessor-Safe Drivers540

16.8.2 SVR4.1/ES Changes540

16.8.3 Dynamic Loading and Unloading541

16.9 Future Directions543

16.10 Summary544

16.11 Exercises545

16.12 References545

17 STREAMS547

17.1 Motivation547

17.2 Overview548

17.3 Messages and Queues551

17.3.1 Messages551

17.3.2 Virtual Copying552

17.3.3 Message Types553

17.3.4 Queues and Modules554

17.4 Stream I/O556

17.4.1 The STREAMS Scheduler557

17.4.2 Priority Bands558

17.4.3 Flow Control558

17.4.4 The Driver End560

17.4.5 The Stream Head561

17.5 Configuration and Setup562

17.5.1 Configuring a Module or Driver562

17.5.2 Opening a Stream564

17.5.3 Pushing Modules565

17.5.4 Clone Devices566

17.6 STREAMS ioctls566

17.6.1 I_STR ioctl Processing567

17.6.2 Transparent ioctls568

17.7 Memory Allocation568

17.7.1 Extended STREAMS Buffers570

17.8 Multiplexing571

17.8.1 Upper Multiplexors571

17.8.2 Lower Multiplexors572

17.8.3 Linking Streams572

17.8.4 Data Flow574

17.8.5 Ordinary and Persistent Links575

17.9 FIFOs and Pipes576

17.9.1 STREAMS FIFOs576

17.9.2 STREAMS Pipes577

17.10 Networking Interfaces578

17.10.1 Transport Provider Interface(TPI)579

17.10.2 Transport Layer Interface(TLI)579

17.10.3 Sockets580

17.10.4 SVR4 Sockets Implementation582

17.11 Summary583

17.12 Exercises584

17.13 References585

Index587

热门推荐