전체 글
[운영체제 공룡책] 9. Main Memory
[운영체제 공룡책] 9. Main Memory
2022.08.29주 메모리의 관리 9.1 Background 프로세스는 메인 메모리에 로드되어 실행되고 있는 프로그램이다 메모리 바이트 단위로 구성되어 있는 배열 CPU가 PC 레지스터로 메모리에 있는 명령어(instruction)를 fetch하여 메모리에서 명령어를 load하고 store한다. Memory Space(메모리 주소 공간) : 어떻게 프로세스들을 로드하고 관리할 지에 대한 관점으로 메모리 공간 설명 멀티 프로세싱에서는 각각의 프로세스가 독립적인 메모리 공간을 받는다는 것을 전제로 함 base register와 limt register는 페어로 주소의 범위가 적합한 지 판단해줌 Protection of memory space (메모리 공간 보호) base register와 limt register를 이용하여..
[운영체제 공룡책] 8. Deadlock
[운영체제 공룡책] 8. Deadlock
2022.08.24데드락의 이해 8.1 System Model deadlock : 동일 집합 내에 프로세스들이 wait 상태에서 빠져나가지 못하는 상태 (해당 스레드가 요청한 리소스가 다른 프로세스나 스레드에 의해 자원이 점유되었기 때문에 wait 상태에서 다시 상태가 변하지 않음) 3.2 Deadlock in Multithreaded Applications 스레드가 자원을 사용하는 과정 : Request - use - Release use 단계가 크리티컬 섹션으로 볼 수 있음 use 섹션에 여러 개의 자원, 인스턴스가 들어갈 수 있음 3.2 Deadlock Characterization Deadlock 발생의 네 가지 조건 Mutual Exclusion 상호 배제 : 한 번에 여러 개의 스레드가 자원을 점유할 수 있다면..
[운영체제 공룡책] 7. Synchronization Examples
[운영체제 공룡책] 7. Synchronization Examples
2022.08.15동시성 제어의 고전적 문제들 7.1 Classic Problmes of Synchronization 대표적인 동시성 제어의 문제들 The Bouned-Buffer Problem : 생산자 소비자 문제를 유한 버퍼로 해결할 때의 문제 The Readers-Writers Problme The Dining-Phiosophers Problem : 철학자들의 저녁 The Bouned-Buffer Problem (한정 버퍼 문제, 생산자-소비자 문제) Shared Data Structures int n = 버퍼 공간 semaphore mutext = 1 , 바이너리 뮤텍스 세마포어! 여러 개가 동시에 버퍼 풀에 접근하지 못하도록 상호배제 하려고 사용함! semaphore emtpy = n empty buffer 수..
[운영체제 공룡책] 6. Synchronization Tools
[운영체제 공룡책] 6. Synchronization Tools
2022.07.30프로세스 동기화 6.1 Background Cooperating processes 프로세스들끼리 서로 영향을 주고 받는 것들에 대해 알아봄 스레드가 logical address space를 공유하거나, 메시지를 주고 받는 것(share memory or message-passing) cuncurrent하게 공유된 데이터에 접근할 떄에는 data inconsistency 를 고려해야함 concurrent하게 실행되는 프로세스들이 정해진 순서로 실행(orderly execution)되도록 보장해주어야 데이터의 consistency 가 유지됨 The integrity of data shared by several processes(or threads) Concurrent execution : 프로세스 실행 중..
[운영체제 공룡책] 5. CPU Scheduling
[운영체제 공룡책] 5. CPU Scheduling
2022.07.24CPU 스케줄링 5.1 Basic Concepts CPU scheduling은 멀티 프로그래밍 OS 시스템에서 필수 멀티프로그래밍(multiprogramming)의 목표는 동시에 여러 프로세스가 수행되고, CPU 사용률을 극대화시키는 것임 CPU 사용하는 구간을 CPU burst, I/O 이벤트를 처리/대기하는 구간은 I/O burst라고 함 프로세스 에 CPU burst가 많으면 cpu-bound, I/O burst가 많다면 I/O-bound CPU schduler 누구에게 CPU를 줄 것이냐? ready 상태의 프로세스 중 어떤 프로세스에게 CPU를 할당(allocates)할 것인지에 대한 문제가 cpu shceduling 어떻게 선택할 것인지? Linked List or Binary Trre? FI..
[운영체제 공룡책] 4. Thread & Concurrency
[운영체제 공룡책] 4. Thread & Concurrency
2022.07.14쓰레드의 이해 프로세스의 동작을 확장하여 프로세스 내 단일 스레드가 아닌 멀티 스레드를 구현함 프로세스의 자원을 나눠서 사용하는 것임! 4.1 Overview thread a lightweight process 최소 CPU 점유 단위 thread ID, PC, 레지스터들, stack 멀티쓰레딩(multithreading)의 장점 Responsiveness : 어떤 UI 처리 시 블록킹을 하지 않고 지속적으로 처리 가능함 Resource Sharing : 스레드들은 프로세스 내 자원을 공유함. shared-memory나 message-passing 방법 보다 통신 비용이 저렴하다 Economy : 프로세스 하나 생성하는 비용보다 저렴하고, PCB를 옮겨 content switcing하는 것 보다 threa..
[운영체제 공룡책] 3. Process - 프로세스 간 통신 (IPC, Inter-Process Communication)
[운영체제 공룡책] 3. Process - 프로세스 간 통신 (IPC, Inter-Process Communication)
2022.07.08프로세스 간 통신 (IPC, Inter-Process Communication) 3.4 Interprocess Communication Process는 두 가지 타입으로 concurrently하게 수행된다 independent (독립적) 공유하는 데이터가 없음 cooperating (협력적) 다른 프로세스에 의해 영향을 주거나 받음 cooperating 프로세스들 간 공유하는 데이터(shares data)가 있음 IPC(Inter-Process Communication) : 공유하는 데이터가 있는 경우 발생할 수 있는 커뮤니케이션 이슈를 해결하기 위함 IPC의 두 가지 모델 shared memory message passing 3.5 IPC in Shared-Memory Systems 생산자-소비자 문제..
2022년 6월 회고
2022년 6월 회고
2022.07.076월 액션 돌아보기 👍 인프런 공룡책(운영체제) 강의 들으며 스터디 😅 아래 책들 중 2권 이상 읽기 도메인 주도 설계란 무엇인가? → 읽는중 실용주의 프로그래머 → 조만간! IT 인프라 구조 → 조만간! 🥲 어떤 계획을 세우거나 선택할 때 그 결과가 얼마나 기대되는 지 마음을 관찰해보기! 기대가 안된다면 기대가 되는 쪽으로 계획과 행동 수정하기! 그리고 좋은 결과를 상상하기! → 아직 습관이 되지 않았다! 6월에 한 거 DDD Quickly 읽는 중. 어렵다. 작지만 강한 책이었다. 운영체제 공룡책 공부를 위한 스터디 모집 완료! 친구가 동시성/병렬성 강의해준대서 회사 동료분이랑 들으러감! 조만간 블로그 포스팅 예정 🙂 너무 좋았어서 매달 한번씩 해주라고 요청함! 이직 목표 : 현 회사는 개발 조직이 ..
[운영체제 공룡책] 3. Process - 프로세스 이해와 생성
[운영체제 공룡책] 3. Process - 프로세스 이해와 생성
2022.07.03프로세스 이해와 생성 3.1 Process Concept 실행중인 프로그램을 프로세스라고 한다. (메모리에 올라옴) OS의 작업의 단위는 프로세스다 Process는 아래 자원(resources)을 필요로 한다. CPU time memory files I/O devices 프로세스의 메모리 레이아웃 Text section : 명령어 나열 Data section : 전역변수들 initialized data uninitalized data Heap section : 동적으로 메모리 사용 (memory that is dynamically allocated during program run time) Stack section : 함수 호출 temporary data storage when invoking func..
[운영체제 공룡책] 1-2 운영체제의 개념과 구조
[운영체제 공룡책] 1-2 운영체제의 개념과 구조
2022.06.26스터디를 모집해서 인프런에서 주니온님이 무료로 강의를 올려주신 운영체제 공룡책 강의를 함께 듣고 있다. 주 1회 한 섹션씩 강의를 듣고 요약 정리, 그 후 제비뽑기해서 2명~4명이 돌아가며 발표 및 궁금한거 혹은 흥미로웠던 내용을 공유하는 방식으로 진행중이다. 블로그에는 주로 강의를 요약한 내용만 정리한다. 1-2 운영체제의 개념과 구조 운영체제가 뭐길래? 1.1 What Operating Systems Do 4개의 컴포넌트 하드웨어 오퍼레이팅 시스템 어플리케이션 프로그램 유저 1.2 Computer-System Organization 현대 컴퓨터의 구성 책에서는 모던 컴터 시스템 구성을 CPU, Disk Controller, USB Contoller, Graphics dapter 등으로 구성되어 있다 ..
[운영체제 공룡책] Docker 이용하여 Mac OS 에 실습 환경설정
[운영체제 공룡책] Docker 이용하여 Mac OS 에 실습 환경설정
2022.06.06인프런 '운영체제 공룡책 강의'의 실습 환경을 구축하기 위해 Docker를 사용합니다. Container 내부에 실습 코드와 자료 등을 관리하여 로컬을 깨끗하게 유지합니다 :-) 1. 도커를 이용하여 Ubuntu 이미지 설치 // 도커는 설치되었다고 가정함 // ubuntu 이미지 다운로드 및 컨테이너 실행 $ docker pull ubuntu:20.04 $ docker run -it --name myUbuntu ubuntu:20.04 // 도커 컨테이너 내로 들어옴 $ apt-get update $ apt-get upgrade -y // 교수님 업글 안하긴 하심 $ apt-get install build-essential gdb 2. 개발 편의를 위해 로컬 VS Code에 Container 연결 VS ..
2022년 5월 회고
2022년 5월 회고
2022.06.024월 다짐 돌아보기 👍 블로그 글 주기적으로 읽기 배운 것 리마인드 다짐 복기 👍 아침 공부시간 알차게 쓰기 하기 싫어서 멍때리면 그 상태 빨리 눈치채고 블로그 포스팅을 하던지 책이라도 읽기 😢 회고 작성을 위해 배운거, 반성할거를 틈틈이 개인 메모장에 작성해두는 습관 들이기 아직 습관이 들지 않았음 5월에 한 거 팀원들을 대상으로 AWS 인프라 구성하기 세미나를 진행함 헤이조이스에서 주최하는 ${} 개발자로 살고 싶은데요 컨퍼런스 참석 후 후기 작성함 쿠팡의 장주란님 : 엔지니어 관점에서 쿠팡의 역사와 성장 구간별 필요했던 선택(아키텍처, 개발 문화의 변화)에 대해 들을 수 있어서 좋았다. 워킹맘의 고민과 이를 어떻게 풀어나가셨는 지도 짧게 들어서 좋았음! 무신사의 조연님 : 넘모 머싯는 분이어따.. ..