Boshkuo's Study Notes

website·Indexed 32 days ago

https://notes.boshkuo.com

A collection of academic notes covering Computer Science fundamentals. Includes detailed documentation on Linear Algebra based on 'Elementary Linear Algebra (Pearson New International Edition)' and Operating Systems based on 'Operating System Concepts, 10th Edition (Silberschatz, Galvin, Gagne)', covering topics such as matrix diagonalization, CPU scheduling, deadlock avoidance, and memory management.

Tokens
324.3K
Snippets
1.4K
Records
2.2K
Agent score
56%

What's inside Boshkuo Notes

  1. Overview of Message Passing IPC

    Message Passing is an IPC mechanism where the operating system provides facilities for processes to communicate by exchanging messages. Unlike shared memory, processes do not need to share an address space, making it naturally suitable for distributed systems. The OS kernel handles the data movement. A basic message passing facility provides two primary operations: send(message) and receive(message). Messages can be of fixed-size (simpler OS implementation, harder for the programmer) or variable-size (more complex OS implementation, easier for the programmer).
  2. Overview of Zustand for React state management

    Zustand is a lightweight, hook-based state management library for React. It is designed to solve problems like 'prop drilling' and unnecessary re-renders without the boilerplate of Redux or the performance pitfalls of useContext (where all consumers re-render on any state change). Key features include a simple API, no requirement for a Context Provider for basic usage, built-in support for asynchronous operations, and a small bundle size.
  3. Overview of ExcelJS v4 features

    ExcelJS is a Node.js library for manipulating Excel files. Compared to alternatives like SheetJS (xlsx), ExcelJS v4 offers several advantages: continuous maintenance on npm, comprehensive style support (fonts, colors, borders, fills, alignment), the ability to insert images, streaming API support for large files to prevent memory overflow, and built-in TypeScript type definitions.
  4. Overview of Changesets for Monorepos

    Changesets is a version management tool designed for monorepos. It allows developers to manage independent versions for multiple packages within a single repository. Key capabilities include generating standardized markdown files for change records, automating version increments based on Semantic Versioning (semver), consolidating changes into a CHANGELOG.md file, and integrating with CI/CD (specifically GitHub Actions) for automated publishing.
  5. Overview of std::unordered_map

    std::unordered_map is an associative container in the C++ STL that stores key-value pairs. It is implemented using a hash table, meaning elements are not stored in any specific order.

    Performance:

    • Average time complexity for insertion, deletion, and lookup: O(1).
    • Worst-case time complexity (e.g., during heavy hash collisions): O(n).

    Comparison with std::map:

    • std::map is typically implemented as a Red-Black Tree (balanced binary search tree), keeping elements sorted by key with a stable O(log n) time complexity for basic operations.
  6. Overview of JavaScript Binary Data Types

    JavaScript provides several tools for handling binary data, ranging from low-level buffers to high-level file objects. These tools often work together: for example, a File can be read into an ArrayBuffer via FileReader, manipulated as a TypedArray, and then repackaged as a Blob for transmission.
  7. Overview of Solaris Scheduling Classes

    Solaris uses six distinct scheduling classes, each with its own priority range and algorithm:

    • Time-Sharing (TS): Default class; uses a Multilevel Feedback Queue to dynamically adjust priority and time slices.
    • Interactive (IA): Used for window applications; uses the same mechanism as TS but with slightly higher priority for better UI responsiveness.
    • Real-Time (RT): Highest global priority; guarantees CPU response within a limited time.
    • System (SYS): Reserved for internal kernel threads (e.g., Scheduler, Paging Daemon); priorities are fixed.
    • Fixed Priority (FP): Same priority range as TS (0-59) but without dynamic adjustments.
    • Fair Share (FSS): Manages resources via CPU Shares (entitlements) assigned to a 'Project' rather than individual priorities.
  8. Overview of C++ STL std::queue

    std::queue is a container adaptor in the C++ Standard Template Library (STL) that implements a First-In-First-Out (FIFO) data structure. It restricts element addition to the back (tail) and element removal to the front (head).
  9. Overview of the four fundamental subspaces of a matrix

    For an $m \times n$ matrix $A$, there are four primary associated subspaces. Their dimensions and the spaces they belong to are as follows:

    • Column Space ($\text{Col}(A)$): The subspace of $\mathbb{R}^m$ spanned by the columns of $A$. Dimension = $\text{rank}(A)$.
    • Null Space ($\text{Null}(A)$): The set of all vectors $\mathbf{x} \in \mathbb{R}^n$ such that $A\mathbf{x} = \mathbf{0}$. Dimension = $\text{nullity}(A) = n - \text{rank}(A)$.
    • Row Space ($\text{Row}(A)$): The subspace of $\mathbb{R}^n$ spanned by the rows of $A$. Dimension = $\text{rank}(A)$.
    • Left Null Space ($\text{Null}(A^T)$): The null space of the transpose of $A$, a subspace of $\mathbb{R}^m$. Dimension = $m - \text{rank}(A)$.
  10. Overview of Operating System Services

    Operating System services are categorized into two primary groups: services that make the computer easier for the user to operate, and services that ensure the efficient operation of the system itself. All services are built upon the underlying hardware, and user requests typically enter the OS kernel via system calls.
  11. Overview of TypeScript Decorator types

    TypeScript provides five types of decorators depending on the target being decorated:
    Decorator TypeTargetCommon Use Case
    Class DecoratorClassAdding metadata, modifying constructors
    Method DecoratorMethodLogging, performance measurement, permission checks
    Property DecoratorPropertyData validation, serialization config
    Accessor Decoratorgetter/setterIntercepting property access, caching
    Parameter DecoratorMethod ParameterParameter validation, dependency injection