분류 전체보기
[운영체제 공룡책] 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 : 하드가 빙글빙글 돌면서 내가 원하는 섹터에 도달하기까지 소요되는 시간 중 제일..
[책 리뷰] 구글 엔지니어는 이렇게 일한다 - 코드리뷰 파트
[책 리뷰] 구글 엔지니어는 이렇게 일한다 - 코드리뷰 파트
2022.09.11책 '구글 엔지니어는 이렇게 일한다' 중 코드리뷰에 관한 파트를 읽고 신기했던 부분과 인상깊었던 부분을 기록하였다. 신기했던 부분 소유권의 개념과 소유권자를 별도 파일로 명시. 이걸 우리팀에 어떻게 적용할 수 있을까? 필요할까 생각해봤을때 아직은 그렇지 않은거같다 싶음 변경 코드는 200줄로! 신규는 제외겠지! 구글은 대부분 기존코드의 변경이니까! → 그래도 변경 PR에서도 200줄이라니 뭔가 신기함! 인상깊었던 부분 코드는 작성되는 것 보다 읽히는 횟수가 많다 코드 리뷰는 설계를 번복하거나 재논의하는 자리가 아니다 작성자의 설계를 존중하라. 리뷰어들은 작성자가 선택한 방식을 존중하고 그 방식에 결함이 있을 때에만 대안을 제시해야 한다. 작성자가 선택한 방식에서 결함을 찾게 된다면 작성자와 리뷰어 모두 ..
[운영체제 공룡책] 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 프로세스 실행 중 사용하지 않는 부분까지 통째로 올리는 것은 너무 비효..
2022년 8월 회고
2022년 8월 회고
2022.08.30지난 액션 돌아보기 인프런 공룡책(운영체제) 강의 들으며 스터디 꾸준히 진행 -> 80% 이상 진행! 책 읽기 : 도메인 주도 설계란 무엇인가? -> 시간 텀을 두고 한번 더 읽어야할 것 같음 7월, 8월에 한 것들 7월 15일 퇴사를 했고, 7월 20일 새로운 회사로 입사함 인프런 주니온님의 공룡책 스터디를 80% 이상 진행함 최근 개발자로 전직을 고려하는 가족이 있어서 어떤 책을 추천해줘야할까 생각하다가, 커리어스킬 이라는 책을 구매해서 읽는 중 7월 24일 두번쨰 CS 월간 스터디 진행함 (이것도 블로그에 포스팅을 해둬야할텐데..!) 책 구글 엔지니어는 이렇게 일한다 중 '코드리뷰' 파트 를 읽고 회사 동료분들과 대화하는 시간을 가짐 최근 나의 상태 요즘 나를 움직이게 하는 무언가와 ..
[운영체제 공룡책] 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 생산자-소비자 문제..