본문 바로가기
728x90

👨‍💻Computer Science/운영체제[OS]13

[운영체제] 13장 I/O Systems I/O Hardware I/O devices -> 모니터, 마우스 와 같이 입출력을 담당하는 장치 Common concepts >Port – 포트번호와 연결 >Bus (daisy chain or shared direct access) - I/O 디바이스 끼리 연결을 도와줌 >Controller (host adapter) - I/O장치의 제어와 타이밍을 조절함 A Typical PC Bus Structure -> I/O 디바이스 구조 데이터를 주고받을 때 디바이스 안에 내장되어 있는 컨트롤러를 통해서 디바이스를 제어를 하고 PCI bus를 통해 전송함 Device Controller -> 디바이스 간의 통신을 도와줌 >I/O devices 구성요소 기계적인 요소 전기적인 요소 - > Device Contr.. 2021. 6. 29.
[운영체제] 12장 Secondary-Storage Architecture Disks 하드디스크는 오류나 검색누락 다양한 문제가 발생할 수 있는 물리적 기계장치임 >Low-level(사람이 알아보기 힘든 형태) device drivers (initiate a disk read, etc) >Higher-level(사람이 알아보기 쉬운 형태) abstractions (files, databases, etc.) 운영체제는 서로 다른 클라이언트에 다양한 레벨에 접근 영역을 제공해줌 -> Physical disk block, Disk logical block, Logical file -> 이 3가지 영역에 접근에 대한 기능들을 제공해줌 하드디스크 구조 Platter(원판처럼 생긴 것) - 데이터가 써지는 곳 head, arm – platter에 데이터를 쓰거나 읽는 역할을 해줌. Tra.. 2021. 6. 29.
[운영체제] 11장 Implementing File Systems -> 내부에서는 어떤 과정들이 일어나는지 배움(개발자 측면) 2가지 관점으로 생각함 On-disk structure – 어떻게 메모리에 파일이 저장되는지 나타내는 구조(여기가 주임) In-memory structure – 컴퓨터가 켜졌을 때 실행되는 파일을 나타내는 구조 On-disk structure Master Boot Record - 하드디스크 하나가 있으면 부팅을 하는 메인디스크의 섹터 0에 master boot record라는 것이 들어가 있고 여기에 boot load(운영체제 소프트웨어를 메모리에 올려두는 것)라는 것이 존재함 -> 어떠한 boot record를 실행할 것인지 확인함, 어떤 파티션을 active시킬 것인지 결정을 함 -> 메모리에 올려놓고 사용함 -loader -> 프로그램을 .. 2021. 6. 29.
[운영체제] 10장 File System 운영체제 -> 컴퓨터 하드웨어(CPU, Memory, I/O장치)를 효율적으로 관리하는 소프트웨어 앞장까지 해서 CPU, Memory 관리까지 배움 이번 장부터는 I/O장치 관리에 대해서 배움 >가장 중요한 것 -> 하드디스크 File System 10장 사용자 입자에서 파일시스템을 배움 11장 파일시스템을 만드는 개발자의 입자에서 내부구조를 배움 파일시스템 -> 파일(데이터 저장하는 파일, 프로그램을 실행 시키는 실행파일)들을 효율적으로 관리하기 위해 사용되는 것 Windows -> NTFS라는 파일시스템 사용, FAT이전에 사용(USB, 하드디스크 포맷할 때 사용됨) -> 이런 것들은 11장에서 자세하게 다룸 Linux -> EXT라는 파일시스템 사용, USB는 FAT사용 >>윈도우에서 사용하는 US.. 2021. 6. 29.
[운영체제] 9장 Virtual Memory Management 개념 – swapping(물리 메모리에 있는 정보와 하드디스크 영역에 있는 정보를 올렸다 내렸다 하는 방식) -> 그래서 마치 메모리가 무한대인 것처럼 동작함 Background Virtual Memory의 가장 기본적인 개념은 logical한 메모리와 물리주소를 분리를 해서 생기게 됨(변환 방법은 8장에서 배움) 이러한 메모리를 변환하는 과정에서 이점이 있음 -> Virtual Memory는 무한하다. >Demand paging >Demand segmentation 이러한 Virtual Memory는 위와 같은 기법들을 구현을 해서 만들 수 있음 그러나 결국 앞에서 배운 것과 같이 segmentation한 이후 paging을 함 -> 따라서 Virtual Memory의 핵심은 swapping을 하는 것.. 2021. 6. 29.
[운영체제] 8장 Memory Management Strategies 뱅커스 알고리즘은 중요한 개념임 꼭 알고 있기! 운영체제 – 컴퓨터 하드웨어(CPU, 메모리, I/O디바이스)를 잘 관리하여서 사용자가 사용할 원할 한 환경을 제공해 주는 것 -> 앞에서 배운 deadlock관련된 것들은 CPU관련된 것임 여기서 부터는 메모리를 관리하는 것을 배움 -> 하드웨어 속 과정은 사용자가 잘 알 수 없음 -> 운영체제의 지원으로 알지 못해도 구현이 가능함 ex. int, float와 같은 것들이 어느 메모리에 할당되는지 굳이 알 필요가 없음 Binding of Instructions and Data to Memory 프로세스를 수행하려면 명령어와 데이터가 메모리로 올라가서 수행을 해야 함 명령어는 크게 문제가 되지 않지만 데이터주소가 언제 바인딩 되는지 3가지(언제 메모리에 할.. 2021. 6. 29.
[운영체제] 7장 Deadlocks Deadlock Problem Deadlock – 교착상태, 결과적으로 아무것도 할 수 없는 상태, 서로 자원을 점유하기 위해 무한정 대기하는 상태 Deadlock 예시 프로세스 P1, P2가 서로 엉켜서(자원이 엉킴) 더 진행되지 못함 Deadlock Characterization Deadlock이 걸리는 필요조건(이런 조건이 만족되면 Deadlock이 발생 할 수도 있다, 100퍼 발생x) 4가지 원인(해결이 필요함) >Mutual exclusion(상호배제) : 한번에 오직 한 개의 작업만 자원에 접근할 수 있다. >Hold and wait(점유대기) : 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림. >No preemption(비선점) : 다른 프로세스가 수행이 완료될 때까지 기다림(.. 2021. 6. 29.
[운영체제] 6장 Synchronization 여기서부터 무척 중요함(이해하기 어려움) 다중프로세스를 사용해야 Synchronization을 이해할 수 있음 Synchronization – 멀티스레드, 멀티프로그래밍 환경에서 일어나는 문제들을 해결하는 방법(두개 이상의 프로세스들이 쉐어드 메모리에 접근을 하려는 경우에 레이스 컨디션이 발생함 이러한 상황을 해결 해줘야함) Synchronization 두개 이상의 멀티 스레드가 사용되는 멀티프로그래밍 환경에서 shared data를 사용하는 경우 동기화가 필요함 -> 스레드들의 실행순서를 조절하기 위한 것임. Shared data structure에서 동기화는 필수적임 IPC - 프로세스들 간의 통신을 말하는 것 두 개의 프로세스는 직접적으로 데이터를 주고받을 수 없는데 이러한 상황에서 데이터를 주고받.. 2021. 6. 29.
[운영체제] 5장 Process Scheduling (어떠한 프로세스 먼저 수행시킬지 정하는 것, 기준필요) -> 본격적 운영체제를 배움 기준 – 언제까지 해야 하나, 빨리 끝나는 것 먼저 수행, 포기한 과목은 뒤로 미룸...등등 프로그램, 프로세스 수행과정을 보여줌 I/O관련 이벤트 들어올 때 wait(현 프로세스)을 하는 이유 CPU에서 명령어 수행 I/O수행이 반복되면서 프로세스 수행 CPU burst – CPU가 명령어를 수행하는 구간(running 상태) I/O burst – wait 상태에서 I/O가 끝날 때까지 기다리는 것(wait 상태) 프로그램이 수행될 때 위에 두 개를 번갈아감 CPU burst vs. I/O burst CPU-bound Process - 프로세스에서 CPU burst가 길다. I/O-bound process - 프로세스.. 2021. 6. 29.
728x90