엔지니어링/개발배움터
[운영체제 공룡책] 16-17. Security & Protection
[운영체제 공룡책] 16-17. Security & Protection
2022.09.14Security (보안) authentication : 인증 Protection (보호) authorization : 인가, 권한 보호 16.1 Security Problem 컴퓨터 자원 실수로 혹은 고의로 잘못 사용되는 것을 방어함 공격을 감지하여 방어하고, 실수를 제어함 cryptography(암호학) 컴퓨터 자원 보안 보안은 컴퓨터 자원을 보호해야함 권한이 없는데 접근하는 것을 막아야함 악의적인 침입이나 변경을 막아야함 실수로 데이터의 일관성을 해치는 행위도 방어해야함 보안 위배 요소 threat(위험) : 주로 실수에 의해 발생 attack : 악의적인 공격 보안 위배 사항 분류 무결성 침해 confidentiality 데이터 안정성 침해 integrity 유용성 침해 availability 서비..
[운영체제 공룡책] 11-15. Storage management
[운영체제 공룡책] 11-15. Storage management
2022.09.1211. Mass Storage Structure Mass-Storage 비휘발성 (non-voliatie, Secondary Storage 보통 하드디스크나 NVM이라 칭함, 제 2 저장 장치 혹은 보조 저장장치라고 함 때로는 마그네틱 테입이나, 광학 디스크, 클라우드 저장소를 사용하는 경우가 있음 RAID 시스템을 이용함 전통적인 HDD 스케쥴링 다스크에 대한 입출력은 왜 굉장히 느릴까? (교수님보다 설명 잘함) seek time (or 액세스 시간을 최소화) deivce arm이 head를 움직이는 데, 특정 실린더의 특정 섹터를 찾아가는 데 걸리는 시간을 의미함 (이게 제일 오래걸림) rotational latency : 하드가 빙글빙글 돌면서 내가 원하는 섹터에 도달하기까지 소요되는 시간 중 제일..
[운영체제 공룡책] 10. Virtual Memory
[운영체제 공룡책] 10. Virtual Memory
2022.09.05가상 메모리와 디맨드 페이징 10.1 Background Virtual Memory 어떤 프로세스의 실행을 실제 메모리에 올리지 않아도, 물리 메모리보다 프로세스의 메모리가 더 커도 실행가능하게 해줌 메인 메모리 자체를 가상의 메모리로 생각을 하면 물리 메모리에서 논리 메모리를 분리할 수 있음 실제 사용하지 않는 메모리는 서브 메모리(SSD, HHD)에 올려둠 Virtual Address Space contiguous memory(연속적인 메모리)에 존재 page sharing 두 개 이상의 프로세스가 서로 파일과 메모리를 주고받기 더 편함 공유하는 파일과 메모리를 shared page 에 두고 사용 10.2 Demand Paging 프로세스 실행 중 사용하지 않는 부분까지 통째로 올리는 것은 너무 비효..
[운영체제 공룡책] 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 생산자-소비자 문제..
[운영체제 공룡책] 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 등으로 구성되어 있다 ..