본문 바로가기
728x90

전체 글240

[운영체제] 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.
[운영체제] 4장 Multithreaded Programming Process Multithreaded Programming 대표적인 예) 메신저프로그램 코딩 어떠한 글자를 키보드를 통해서 입력하는 클라이언트 프로그램을 만들 때 클라이언트 프로그램에서 문자를 입력하면 그 것을 수신하고 다른 사용자들에게 뿌려주는 서버를 프로그램 해야 함 다른 프로그램 클라이언트에게 통신을 날릴 때 키보드에서 입력하는 경우와 데이터를 받고 동시에 뿌려주는 것 두 가지를 해야 함 키보드 입력받는 함수 -> cin, scanf 사용 더불어 클라이언트만 이야기할 때 네트워크를 통해서 글자가 상대방이 입력한 것을 가져와서 뿌려주는 함수 또한 구현을 해야 함 이렇게 되면 키보드 입력을 통해 기다리는 함수와 네트워크를 통해서 데이터가 도착을 했을 때 뿌려주는 함수 2가지가 동시에 기다리게 됨. c.. 2021. 6. 29.
[운영체제] 3장 Process Concept 프로세스 – 일상 : 일을 처리하는 과정/경로, 공장 조립과정, 요리 과정 등등 운영체제 : 컴퓨터에서 프로그램을 실행시키기 위해 연속적인 작업(효율적 관리가 중요), 스케줄링의 대상이 되는 작업 Process Concept 프로그램 – 하드웨어에 있는 파일 프로세스 – 프로그램 구동 시 만들어지는 인스턴스, 운영체제에서 관리하는 프로그램의 흐름으로 가장 기초가 되는 단위 프로세스의 첫 번째 이 프로세스가 어떤 것을 하는지? 프로세스 명명(ID를 사용 = PID) Process Address Space Process Address space – 프로세스가 실행이 되기 위해 메모리공간에 저장이 되어야하는데 이때 저장이 되는 공간 stack(dynamic allocated memory) – 함수 호출시 지역.. 2021. 6. 29.
[운영체제] 2장 system 운영체제에서 지원해주는 서비스 요소 Process Management Main Memory Management – 버추얼 메모리 매니지먼트가 대표적 I/O System Management – 마우스, 키보드 등 관리(I/O기기 가상화) Secondary Storage Management – 하드디스크, SSD에서 데이터를 어떻게 관리하나 File Management – 파일생성, 폴더생성 관리 Networking – 인터넷 등등 Protection System – 시스템을 보호하기 위해 듀얼모드 사용(사용자 모드에서 커널모드로 직접적인 접근을 불가능하게 함 -> 시스템 콜 필요 Command-Interpreter System – 사용자가 내린 명령어를 해석해주는 시스템(커멘드 창 명령어 해석) 운영체제 .. 2021. 6. 29.
728x90