클린코드 책을 읽다가 동시성 전통적인 문제 3가지에 대한 내용이 나와서 다시 정리하게 되었다. 반효경 교수님의 운영체제 강의 내용을 바탕으로 간략하게 다시 정리해본다. 동시성 해결 방식 1 → 2 → 3 으로 갈수록 추상화된 방식으로 프로그래머가 사용하기 편함 1. Test & Set 공유데이터에 접근 및 변경을 하드웨어적으로 atomic(원자적) 하게 실행하개 해줌 2. Semaphore TestAndSet을 추상화한 방식 추상자료형 (내부 구현은 신경쓰지 않고, object, operation 으로 사용) object: 정수(자원의 갯수), S operation: P(자원획득과정), V(자원반납과정) 예시: P(5) → 자원의 갯수: 5, 자원 획득과정 P연산 V연산 사이에 자원을 사용하는 코드가 들..
기존 오해하고 있던 개념 가상메모리라는게 CPU가 바라보는 메모리이다. 이것은 각 프로세스가 RAM 메모리만큼을 다 쓰는 거라고 알고 있다. 그렇다면 같은 RAM을 사용한다면 그 프로세스의 가상메모리 크기는 같을 것이다. 라고 생각했다. 올바른 개념 그 프로세스가 실행되는데 필요한 메모리의 크기를 의미한다. 각각의 프로세스는 본인이 실행되기 위해서 필요한 메모리를 가진다. 필요한 메모리를 다 사용한다고 가정하는 것이 가상메모리이다. 따라서 실제 주 메모리보다 큰 영역의 메모리 공간을 제공할 수 있다. VIRT는 프로세스가 전에 사용했던 가상 메모리의 전체 크기를 말한다. code, data, shared library 등을 포함한다. 정리 리눅스와 관련된 포스팅 발표를 들으면서 또 잘못알고 있던 가상메모..

1. 운영체제 입장에서 보면 프로세스도 스레드의 일종이 아닐까? --> NO 헷갈렸던 부분이 커널 레벨 스레드라는 부분을 읽고 프로세스도 스레드의 일종인가?라는 생각을 하게 됐었다. 스레드는 커널 레벨 스레드, 사용자 레벨 스레드로 나눌 수 있다. 커널 레벨 스레드는 OS가 스레드의 존재를 알고 직접 관리하는 스레드이고, 사용자 레벨 스레드는 OS가 스레드의 존재를 모르고 프로세스 자체에서 관리하는 스레드이다. 프로세스가 생성되면 적어도 1개 이상의 커널 레벨 스레드가 생성된다. 각종 설명을 듣고 내가 다시 이해한 부분은 다음과 같다. 커널 레벨 스레드는 프로세스가 커널과 소통하는 창구와 비슷하다고 이해했다. 커널 레벨 스레드가 유효성 있게 사용되는 환경은 멀티코어 환경에서다. CPU는 한 번에 하나의 ..
목록 운영체제 시리즈 1.Intro 운영체제 시리즈 2.시스템 구조 운영체제 시리즈 3. 프로그램 실행 운영체제 시리즈 4. 프로세스(Process) 운영체제 시리즈 5. 프로세스 관리(Process Management) 운영체제 시리즈 6. CPU Scheduling 운영체제 시리즈 7. Synchronization-1 운영체제 시리즈 8. Synchronization -2 운영체제 시리즈 9. Deadlock 운영체제 시리즈 10. Memory management -1 운영체제 시리즈 11. Memory management -2 운영체제 시리즈 12. Virtual memory 운영체제 시리즈 13. File Systems 운영체제 시리즈 14. File System Implementation 운영체..
Web caching 기하급수적으로 늘어나는 인터넷 정보에 신속하게 접근할 수 있게 하는 주요 기술이다. 웹 캐싱이란 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 하는 기법이다. 컨텐츠 전송 네크워크 (CDN: Contents Delivery Network) 서비스의 활성화로 거리에 따른 캐싱 기법이 필요하게 된 것이다. 웹 캐싱 기법은 웹 캐싱만을 담당하는 프락시서버에 의해 이루어지고 있다. 서비스 지연시간을 줄이고, 네트워크 대역폭 절약, 웹 서버의 부하를 줄이는 역할을 하고 있다. 웹 서버쪽에서는 역방향 프락시 캐시가 사용된다. 웹 캐싱에서는 웹 캐시 교체 알고리즘과 데이터의 일관성 유지 기법이 필요하다. 웹 캐시 교체 알고리즘 ..

Disk Structure Logical block : 디스크 외부에서는 디스크는 일정한 크기의 정보저장공간을 가진 1차원 배열로 취급한다. 논리블럭 단위로 저장되고 전송된다. Sector : 논리블록이 저장되는 디스크 내부의 물리적 위치를 섹터라고 하며 디스크 관리의 최소단위이다. 논리블럭 하나가 섹터 하나와 1:1로 매핑되어 있다. sector 0는 초외곽 실린더의 첫 트랙에 있는 첫번째 섹터이다. platter : 하나의 디스크에서 원판은 하나 또는 여러개 일 수 있다. track : 각 원판은 track으로 구성된다. cylinder : 상대적 위치가 동일한 트랙의 집합을 의미한다. arm : 데이터를 읽고 쓰기 위해서 arm이 해당 섹터가 위치한 실린더로 이동한 뒤 원판이 회전한다. 회전하면서 ..

Allocation of File Data in Disk 디스크에 파일 정보를 어떻게 할당할 것인가를 결정한다. Contiguous Allocation(연속할당) 연속해서 할당하는 방법이다. [장점] - Fast IO : 연속적으로 할당되어 있기 때문에 한 번의 seek 또는 rotation으로 많은 내용을 빠르게 찾을 수 있다. 많은 바이트 transfer용도, realtime file 용도, swapping용도(스와핑은 공간 효율성보다는 속도 효율성이 중요하다) 등으로 사용된다. - Direct access(Random access)가 가능하다. [단점] - 외부조각이 발생한다. - file의 크기를 증가시키는 것이 어렵다. 파일이 커질 것을 대비하여 미리 확보해 놓으면 내부조각이 발생한다. Link..
- Total
- Today
- Yesterday
- 모의면접준비
- 개발공부일지
- 마스터즈코스
- python
- OS
- 객체지향
- JPA
- 코드스쿼드
- DB
- 알고리즘
- 카카오
- TCP/IP
- 네트워크
- TIL
- 우아한테크코스
- 우테코수업
- 월간회고
- JS
- 회고
- Spring
- React
- 글쓰기미션
- CS
- 내부코드
- 운영체제
- javascript
- java
- 학습로그
- 인증
- Transaction
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |