دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: نویسندگان: Randal E. Bryant, David R. O’Hallaron سری: ISBN (شابک) : 9781488672071 ناشر: Pearson سال نشر: 2016 تعداد صفحات: 1105 زبان: english فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 4 مگابایت
در صورت تبدیل فایل کتاب Computer Systems. A Programmer’s Perspective [3rd ed.] به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب سیستم های کامپیوتری. دیدگاه یک برنامه نویس [ویرایش سوم] نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
برای دوره های علوم کامپیوتر و برنامه نویسی سیستم های کامپیوتری: دیدگاه برنامه نویس عناصر اساسی مشترک در بین تمام سیستم های کامپیوتری و نحوه تاثیر آنها بر عملکرد کلی برنامه را توضیح می دهد. این کتاب که از دیدگاه برنامه نویس نوشته شده است، تلاش می کند به دانش آموزان بیاموزد که چگونه درک عناصر اساسی سیستم های کامپیوتری و اجرای تمرین واقعی می تواند آنها را به سمت ایجاد برنامه های بهتر سوق دهد. نسخه سوم که در سراسر موضوعات علوم کامپیوتر مانند معماری سخت افزار، سیستم عامل و نرم افزار سیستم ها قرار دارد، به عنوان مقدمه ای جامع برای برنامه عمل می کند.
For courses in Computer Science and Programming Computer systems: A Programmer's Perspective explains the underlying elements common among all computer systems and how they affect general application performance. Written from the programmer's perspective, this book strives to teach students how understanding basic elements of computer systems and executing real practice can lead them to create better programs. Spanning across computer science themes such as hardware architecture, the operating system, and systems software, the Third Edition serves as a comprehensive introduction to program.
Contents......Page 3
Preface......Page 15
Tour of Computer Systems......Page 31
Information Is Bits + Context......Page 33
Programs Are Translated by Other Programs into Different Forms......Page 34
It Pays to Understand How Compilation Systems Work......Page 36
Processors Read and Interpret Instructions Stored in Memory......Page 37
Caches Matter......Page 41
The Operating System Manages the Hardware......Page 44
Systems Communicate with Other Systems Using Networks......Page 49
Important Themes......Page 52
Summary......Page 57
--- Program Structure & Execution......Page 59
Representing & Manipulating Information......Page 60
Information Storage......Page 63
Integer Representations......Page 88
Integer Arithmetic......Page 113
Floating Point......Page 137
Summary......Page 155
Machine-Level Representation......Page 191
A Historical Perspective......Page 194
Program Encodings......Page 197
Data Formats......Page 205
Accessing Information......Page 207
Arithmetic and Logical Operations......Page 219
Control......Page 228
Procedures......Page 266
Array Allocation and Access......Page 283
Heterogeneous Data Structures......Page 293
Combining Control and Data in Machine-Level Programs......Page 304
Floating-Point Code......Page 321
Summary......Page 337
Processor Architecture......Page 379
The Y86-64 Instruction Set Architecture......Page 383
Logic Design and the Hardware Control Language HCL......Page 400
Sequential Y86-64 Implementations......Page 412
General Principles of Pipelining......Page 440
Pipelined Y86-64 Implementations......Page 449
Summary......Page 498
Optimizing Program Performance......Page 523
Capabilities and Limitations of Optimizing Compilers......Page 526
Expressing Program Performance......Page 530
Program Example......Page 532
Eliminating Loop Inefficiencies......Page 536
Reducing Procedure Calls......Page 540
Eliminating Unneeded Memory References......Page 542
Understanding Modern Processors......Page 545
Loop Unrolling......Page 559
Enhancing Parallelism......Page 564
Summary of Results for Optimizing Combining Code......Page 575
Some Limiting Factors......Page 576
Understanding Memory Performance......Page 581
Life in the Real World: Performance Improvement Techniques......Page 589
Identifying and Eliminating Performance Bottlenecks......Page 590
Summary......Page 596
Memory Hierarchy......Page 607
Storage Technologies......Page 609
Locality......Page 632
The Memory Hierarchy......Page 637
Cache Memories......Page 642
Writing Cache-Friendly Code......Page 661
Putting It Together: The Impact of Caches on Program Performance......Page 667
Summary......Page 676
--- Running Programs......Page 695
Linking......Page 696
Compiler Drivers......Page 698
Static Linking......Page 699
Object Files......Page 700
Relocatable Object Files......Page 701
Symbols and Symbol Tables......Page 702
Symbol Resolution......Page 706
Relocation......Page 716
Executable Object Files......Page 722
Loading Executable Object Files......Page 724
Dynamic Linking with Shared Libraries......Page 725
Loading and Linking Shared Libraries from Applications......Page 728
Position-Independent Code (PIC)......Page 731
Library Interpositioning......Page 734
Summary......Page 740
Exceptional Control Flow......Page 747
Exceptions......Page 749
Processes......Page 758
System Call Error Handling......Page 763
Process Control......Page 764
Signals......Page 782
Nonlocal Jumps......Page 807
Tools for Manipulating Processes......Page 812
Summary......Page 813
Virtual Memory......Page 826
Physical and Virtual Addressing......Page 828
Address Spaces......Page 829
VM as a Tool for Caching......Page 830
VM as a Tool for Memory Management......Page 836
VM as a Tool for Memory Protection......Page 837
Address Translation......Page 838
Case Study: The Intel Core i7/Linux Memory System......Page 850
Memory Mapping......Page 858
Dynamic Memory Allocation......Page 864
Garbage Collection......Page 890
Common Memory-Related Bugs in C Programs......Page 895
Summary......Page 900
--- Interaction & Communication......Page 911
System-Level IO......Page 912
Unix I/O......Page 913
Files......Page 914
Opening and Closing Files......Page 916
Reading and Writing Files......Page 918
Package......Page 920
Reading File Metadata......Page 926
Reading Directory Contents......Page 928
Sharing Files......Page 929
I/O Redirection......Page 932
Putting It Together: Which I/O Functions Should I Use?......Page 934
Summary......Page 936
Network Programming......Page 940
The Client-Server Programming Model......Page 941
Networks......Page 942
The Global IP Internet......Page 947
The Sockets Interface......Page 955
Web Servers......Page 971
Web Server......Page 979
Summary......Page 987
Concurrent Programming......Page 993
Concurrent Programming with Processes......Page 995
Concurrent Programming with I/O Multiplexing......Page 999
Concurrent Programming with Threads......Page 1007
Shared Variables in Threaded Programs......Page 1014
Synchronizing Threads with Semaphores......Page 1017
Using Threads for Parallelism......Page 1035
Other Concurrency Issues......Page 1042
Summary......Page 1052
Error Handling......Page 1063
Error Handling in Unix Systems......Page 1064
Error-Handling Wrappers......Page 1065
Refs......Page 1068
Index......Page 1074