본문 바로가기

운영체제14

Operating System - Ch16. Security 본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 기본 용어 - Vulnerability: 취약점. CIA Triad가 깨지는 상황 - Threat: 위협, 취약점의 노출 가능성 - Attack: 위협의 실제 수행 - Adversary: Attack의 주체 - Countermeasure: 공격에 대한 반격 수단 Security requirement triad (CIA Triad) - Confidentiality: 기밀성, 데이터 내용을 남들이 알 수 없게 만들어야 한다. - Integrity: 무결성, 데이터의 위조나 변조가 될 수 없도록 한다. - Availability: 가용성, 어떤 상황에서든 시스템과 데이터를 사용할 수 있어야 한다. 이 세 가지 요건을.. 2022. 6. 20.
Operating System - Ch14-15: File system ㅇ본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 이번 챕터에서는 File system에 대해 알아보자. File System Implementation 파일 시스템의 구현은 크게 두 가지로 나뉜다. - In-memory structure: 운영체제가 시작되서 해당 프로세스가 파일을 접근할 때 필요한 구조. - On-disk structure: 전원이 꺼져도 Secondary storage가 데이터를 저장하기 위해 필요한 구조. In-memory structure 특정 프로세스가 파일에 접근하기 위해 open을 수행하면 file descriptor가 반환이 된다. 이것을 가지고 read/write을 하게 된다. open할 때 경로가 포함되어 있는 파일이름을 .. 2022. 6. 19.
Operating System - Ch13: File system interface ㅇ본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 이번 챕터에서는 File system interface에 대해 알아보자. File: 관련된 정보들을 집합으로 모아둔 것 또는 secondary storage에 저장하고 사용자에게 보여지는 하나의 단위. - File system은 이 File들을 체계적으로 관리하기 위한 시스템이다. - Windows 는 NTFS라는 File system을 사용한다. 그 전에는 FAT이라는 시스템을 사용했다. - Linux / Unix 계열은 ext라는 시스템을 사용한다. - Apple은 AFS(Apple File System)라는 시스템을 사용한다. - USB는 VFAT(Virtual FAT)을 사용한다. - FAT과 NTFS.. 2022. 6. 18.
Operating System - Ch12: I/O systems ㅇ본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 이번 챕터에서는 I/O systems에 대해 알아보자. I/O 연산은 CPU의 I/O 명령에 의해 수행된다. CPU가 I/O 장치에게 명령을 내리는 방법에 따라 Direct I/O와 Memory-mapped I/O로 나뉜다. 하드웨어적인 관점으로 볼 때는 I/O device가 I/O 명령을 수행하는 방식에 따라 Programmed I/O, Interrupt, DMA(Direct Memory Access) 세 가지 방식이 있다. - Programmed I/O는 I/O 장치에서 처리한 결과를 CPU register에 직접 전달하는 방식이다. 이 때는 I/O 연산의 결과값이 작은 경우.(키보드나 마우스) - 그 결.. 2022. 6. 18.
Operating System - Ch11. Mass storage structure 본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! Mass storage는 다음과 같은 것들이 있다. - HDD (Hard Disk Drive) - SSD (Solid State Disk) - RAM disk - Magnetic tape 이러한 저장장치를 연결하는 방법은 두 가지가 있다. Host attached: I/O 포트를 통해 붙인다. 컴퓨터를 조립할 때 SATA 케이블이나 M.2 슬롯에 넣는 물리적인 연결. - IDE: 우리가 PC에서 사용하는 인터페이스 - SCSI: 서버같이 신뢰성과 기능이 중요한 컴퓨터에 사용하는 인터페이스 Network attached: 네트워크를 통해 붙인다. - NAS(Network-Attached Storage): 4~5베.. 2022. 6. 18.
Operating System - Ch10. Virtual memory 본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 이번 챕터에서는 Virtual memory에 대해서 알아보자. Virtual memory의 기본 개념은 Secondary Storage와 Physical memory 간의 "Swap", 그리고 이론상 무한한 양의 메모리를 사용할 수 있도록 하는 것이다. 아출발 이 그림을 통해 알 수 있듯이, virtual memory를 잘 사용하면 physical memory의 크기보다 훨씬 큰 양의 메모리를 사용할 수 있다. 이것이 가능한 이유는 바로 디스크의 일부분을 메모리로 생각하고 사용하기 때문이다. Physical memory에 Free frame이 더이상 없어 새로운 프로세스가 왔을 때 곤란해진다. 이 때 disk를.. 2022. 6. 16.
Operating System - Ch09. Main memory 본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 메모리는 아주 비싼 자원이다... 그래서 아주 잘 사용해야하고, 아껴 쓰고, 효율적으로 사용해야한다. 그렇다면 메모리 관리는 어떻게 해야할까? 이에 대해서 Ch09에서 알아보자. 메모리 관리에 있어서 중요한 이슈들 옛날 배치 시스템에서는 별 중요한 요소는 아니었다만... 멀티프로그래밍 환경이 찾아오면서 메모리 관리가 매우 중요해짐. - 여러 프로세스에 대한 지원 - 실제 Physical memory보다 더 큰 용량을 가지는 프로세스도 지원할 수 있어야 한다. - 메모리 자원 보호 - 메모리 자원 공유 - 성능 Virtual Memory (VM) Virtual memory는 메모리를 만들어서 physical me.. 2022. 6. 16.
Operating System - Ch08. Deadlock 본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 생각하는 철학자 알고리즘에서 서로가 서로를 기다리는 데드락 문제가 발생하는데, 데드락에 대해서 알아보자. 데드락이란 자신이 어떤 자원을 사용하고자 할 때 그 자원이 다른 누군가가 사용중이라면, 그 자원을 쓸 수 있을 때까지 대기하는데 그 대기가 영원히 지속되는 것을 말한다. 결국에는 모든 프로세스가 하나의 프로세스의 이벤트를 기다리는 총체적 난국의 상황이 된다. 데드락이 발생할 네 가지 충분 조건은 다음과 같다. 넷 모두 만족하면 데드락이 발생함. 1. Mutual exclusion (상호배제): 동시에 오직 하나의 프로세스만 자원을 사용할 수 있다. 멀티 프로세스 환경에서 필연적으로 발생하는 경우. (mute.. 2022. 6. 1.
Operating System - Bootstrapping PC의 전원 버튼을 누르면 메인보드의 전원 단자가 쇼트가 나면서 파워에 불이 들어온다. 1. CPU 초기화 및 BIOS 로드 제일 먼저 CPU가 스스로를 초기화하고 고정되어 있는 주소인 0xffffffff0에 있는 instruction을 수행. 여기에는 뭐가 있지? BIOS가 있다. (Basic Input Output System) CPU가 가장 먼저 수행하는 명령어가 저장되어있는 주소에 BIOS가 있다는 것. 전원이 꺼져도 데이터가 살아있어야 하니 ROM에 저장됨. 2. BIOS의 하드웨어 검사 BIOS/UEFI로 jump한다. CPU는 앞서 초기화하면서 점검을 마쳤고, CPU를 제외한 나머지 필수 요소(Memory, GPU, I/O devices...)들이 정상적으로 저장되어 있는지를 체크한다. 이를.. 2022. 6. 1.
Operating System - Ch07. Synchronization example 본 글은 Operating System Concepts 10판을 기준으로 작성되었습니다...! 챕터 6에서는 동기화 문제에 대한 이야기를 여럿 했었다. 이번 챕터에서는 프로세스 동기화 예시에 대해서 알아보자. Typical Sychronization Problems... 보통 Semaphore로 해결할 수 있고, Mutex lock과 Condition variables로 해결할 수도 있다. 1. Bounded-Buffer Problem (한정 버퍼 문제, Producer-Consumer problem) 공유 자원을 두 프로세스가 동시에 이용하기 때문에 꼬이는 문제. Race condition이라고 함. // 생산자 코드 void Producer(data) { while(count == N) {}; buf.. 2022. 6. 1.