OS
![[전공생이 설명하는 OS] 메모리 관리 - (1) Partition/Page/Segment](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdzyGvh%2FbtrDNUuJMxt%2FAAAAAAAAAAAAAAAAAAAAAAsbYRIOM0Ct6BFEZqP-hFKxGWApDDFPm9jJx3zzRJho%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DdH%252FET7onZ0bkxzdJ%252F5LVwAxb3jg%253D)
[전공생이 설명하는 OS] 메모리 관리 - (1) Partition/Page/Segment
1. Memory Management 란? 메모리는 (1) OS(resident monitor, kernel) (2) user 두 부분으로 나뉜다. Uni-programming 환경에서는 user part 에 1개의 프로그램만 적재되고, multi-programming 환경에서는 다수의 프로그램이 적재될 수 있다. Memory management 라는 말은 OS 가 user 가 사용하는 메모리를, 프로세스의 요청에 맞게 분할 및 분배하는 것을 포함한다. 메모리를 할당하는 방식은 프로세스 실행 시점에 따라 크게 두 가지로 분류할 수 있다. static allocation : 프로그램 실행 이전에 미리 메모리를 할당하는 방식 (예, global 변수나 상수 등) dynamic allocation : runt..
[전공생이 설명하는 OS] 동기화 - (1) 용어 및 개념정리
동기화 문제가 왜 발생하는지에 대해서는 [전공생이 설명하는 OS] 쓰레드(Thread)와 동기화 문제 의 마지막 단락을 참고해주세요. [동기화 관련 용어] (1) Race Condition : 멀티쓰레드 또는 멀티 프로세스 환경에서 공유자원에 동시에 접근할 때, 의도치 않은 결과를 낳는 것을 race condition이라고 하고 다음과 같은 특성을 갖는다. 근본적으로는 [cpu 스케줄링 + 캐시(레지스터 포함) + non-atomic instruction] 때문에 발생하며, 이를 방지하기 위해서는 공유자원에 대한 동기화가 필요하다. Non-Deterministic : 의도하지 않은 결과를 내는데, 결과를 예측할 수 없다. Reproducible : 재현 가능하다. (2) Critical Section :..

JavaThread 에 대해 깊게 이해해보자 (feat. Openjdk 커널 분석)
Thread에 대한 기초적인 os 지식은 이 글(쓰레드(Thread)와 동기화 문제)을 참고하기 바람 Thread는 user가 관리하느냐, os가 관리하느냐에 따라 User-Level-Thread 또는 Kernel-Level-Thread 로 나뉜다. 두 가지의 장점을 합친 Hybrid 모델도 존재한다. Java에서는 Kernel thread와 User thread를 모두 사용하는 Hybrid 모델이다. (jdk 1.2 버전까지는 100% User-Level-Thread인 GreenThread라는 것이 있었다고 한다.) 그림을 잘 보면, User-level thread 3개가 2개의 Kernel-Level-Thread를 공유하고 있는 것을 알 수 있다. OS 수업을 듣다가, java 는 구체적으로 이런 방..
![[전공생이 설명하는 OS] 쉽게 읽는 OS의 발전 이야기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc9K7pF%2FbtrAz66I64D%2FAAAAAAAAAAAAAAAAAAAAAHi2uNM7il-hv9Aehe-ZQHKUI1sXutw5mHlCZQI4ziUl%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DqnM%252B%252BUCw%252BEnevJ0U0LXwfNrwIQI%253D)
[전공생이 설명하는 OS] 쉽게 읽는 OS의 발전 이야기
1. OS 의 목적 OS는 자원관리자로서의 성경이 강하다. 주로 기기 사용자가 안전하고 효율적으로 하드웨어를 사용할 수 있도록 돕는다. OS 의 목적은 크게 3가지로 나타낼 수 있다. 편의성. 컴퓨터 사용자가 하드웨어를 조작하기 위한 instruction 이나 구현방법 등을 알지 못해도 안전하게 사용할 수 있게 한다. 효율성. 사용자 경험을 최대화하기 위해 cpu utilization, cache memory, scheduling 등 자원을 관리 한다. 유연함. OS 가 개선될 때, 기존 User Application 에 영향을 주지 않으면서 발전할 수 있도록 한다. 2. OS의 발전 William Stalling 교재에서는 OS 의 발전을 크게 4단계로 구분한다. 1) Serial Processing ..