COMPUTER ARCHITECTURE STUDY

This is my revision notes for Computer Architecture. In this post, I will go through some basic knowledge of computer architecture (definitions, theories, calculations), arithmetic operations for computers, pipelined processor design and memory hierarchy. This post will provide a low-level view of computer architecture and design, and help understand how a computer actually runs.

Thumbnail image

ARM ARCHITECTURE STUDY

Welcome to this post, where the exploration of ARM architecture is at the forefront of our discussions. As a professional currently engaged in simulating ARM processors, I’m here to unravel the complexities and innovations of this pivotal technology. ARM’s efficient, low-power consumption design is not just revolutionizing mobile computing; it’s reshaping the way we think about processing power in an array of devices. Join me on this intellectual odyssey as we delve into the nuances of a system that is the bedrock of modern computing efficiency.

SOFTWARE ENGINEERING

This is my notes for software engineering. In this post, I will cover some basic principles about software engineering.

OPERATING SYSTEMS

This is my notes for operating systems. In this post, I will cover the following contents:

  • OS purposes: resource management and the extended virtual computer; historical development.
  • Processes: critical sections and mutual exclusion, semaphores, monitors, classical problems, deadlock; process scheduling.
  • Input and Output: hardware and software control.
  • Memory management: multi-programming; swapping; virtual memory, paging and symbolic segmentation.
  • File System: operations, implementation, performance.
  • Operating System Security and Protection mechanisms: protection domains, access lists, capability systems, principle of minimum privilege, security threats and attacks, encryption, and authentication.

DISTRIBUTED SYSTEMS

This is my course notes for Distributed Systems. In this post, I will cover:

  • The challenges faced in constructing client/server software: partial system failures, multiple address spaces, absence of a single clock, latency of communication, heterogeneity, absence of a trusted operating system, system management, binding and naming.
  • Techniques for meeting these challenges: RPC and middleware, naming and directory services, distributed transaction processing, ’thin’ clients, data replication, cryptographic security, mobile code.
  • Introduction to Java RMI.

C++ STUDY NOTE

During the summer of my freshman year, I spent quite a lot of time self-studying C++ basic knowledge such as operator overloading, template, file operations. Honestly, it is sufficient for me to pass my courses in later 2 years. However, when I am coding for real industrial project, I realized the knowledge gap. That’s why I make this post to keep track of my further study about C++. In this post, I will go through some deeper concepts in C++ such as compiling, linking, some other keywords, smart pointers, C++ libraries, multi threading, design patters, lambda expressions…

GIT NOTE

Over the past 2 years, I basically had no idea about how to use git in real development since I only know a few commands such as git add, git commit and git push. Until I became a software developer, I realized the importance of git and agile development. That is why I want to make a blog post about it. In this blog, I summarized the workflow of using git and put some other knowledge like branching and resolving conflicts.

LINUX PROJECT

In this post, I will put some C++, linux, computer networking and computer architecture concepts and theories. In addition, I will also do a Linux high-concurrency web server project in the end to consolidate these knowledge.

PARALLEL AND DISTRIBUTED COMPUTING

This is my revision notes for Parallel And Distributed Computing. In this post, it will cover fundamental concepts and trade-offs behind parallel and distributed applications, designs and implementations for parallel and distributed applications, as well as performance analysis.

COMPUTER NETWORK AND APPLICATION

This is my revision notes for Computer Network and Application. I will go through a five-level protocol model: Application Layer, Transport Layer, Network Layer, Link Layer, and Physical Layer. This post includes the summary of computer network knowledge as well as network security.