본문 바로가기

Computer Science

(16)
운영체제 - 파일시스템 파일 시스템   - 운영체제가 저장매체에 파일을 사용하기 위한 자료구조 또는 알고리즘을 뜻합니다.   - 0과 1의 데이터를 저장하기 위해 블록단위로 관리하고, 고유번호를 부여해서 관리합니다.   - 사용자는 각 블록 고유 번호를 관리하기 어렵기 때문에, 파일 이라는 추상적 단위로 관리하게 됩니다.    파일 시스템 저장 방법   - 가능한 연속적인 공간에 파일을 저장하는것이 효율적입니다.   - 하지만, 외부 단편화, 파일 사이즈 변경 등 여러 문제로 불연속적인 공간에 파일저장 기능이 필요합니다. .      > 외부 단편화 : 공간이 파편화 되어있어 여유 용량은 존재하나, 데이터를 저장하지 못하는 상태    1. 블록 체인      - 블록을 Linked List로 연결합니다.      - 중간의 블..
운영체제 - 페이지 교체 알고리즘 스레싱(Thrashing)    - 페이지 폴트가 자주 일어날 수록 해당 페이지를 물리 메모리에 올려야 하며, 이는 많은 시간을 요구합니다.   - 페이지 폴트가 과도하게 일어나 CPU 사용률이 매우 떨어지는 현상입니다.   - 이를 막기 위해서는 향후 실행/참조될 코드나 데이터를 미리 물리 메모리에 올리면 됩니다.    페이지 교체 알고리즘   - 어떤 페이지를 먼저 페이지 테이블에서 제외할 지 결정하는 알고리즘입니다.    1) First in First Out (FIFO)      - 먼저 들어온 페이지를 교체하는 알고리즘입니다.    2) Optimal Peplace Algorithm (Optimal, OPT)      - 앞으로 가장 오랫동안 사용하지 않을 페이지를 예상하여 교체하는 알고리즘입니..
운영체제 - 페이징 시스템 가상 메모리는 '프로세스에서 실제로 사용하는 메모리는 생각보다 작다'는 점에서 시작되었습니다.이는 사용하는 메모리만 실제 물리주소로 적용하게 했지만 새로운 문제가 발생했습니다.얼마만큼의 메모리를 할당하냐 입니다.    페이징 시스템   - 일정한 크기로 나눈 페이지로 가상 주소와 물리 주소를 관리하는 알고리즘입니다.   - 하드웨어 지원이 필요합니다.   - 페이지 번호를 기반으로 가상주소-물리주소 매핑 정보를 기록하고, 사용합니다.   - 가상주소와 물리주소 매핑을 위해 페이지 테이블(Page table)을 사용합니다.    페이지 테이블   - 가상주소와 물리주소 간 매핑 정보를 저장합니다.   - 프로세스 PCB에 Page Table 구조체를 가리키는 주소가 들어있습니다.    페이징 매핑 방식  ..
운영체제 - 가상메모리 가상 메모리란?   - 메모리가 실제 메모리보다 많아 보이게 하는 기술입니다.   - 프로세스가 실제로 사용하는 메모리는 작다는 점에 착안해서 고안된 기술입니다.   - 실제 프로세스에서 사용하는 메모리만 제공하고, 나머지 공간은 가상 주소만 제공합니다.      - 이때, 프로세스간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않습니다.    - 배치 처리 시스템에서는 가상메모리가 필요하지 않습니다.      : 프로세스 로드 - 실행 - 종료 의 과정을 통해 메모리를 다시 반환받고, 반환받은 뒤 로드하기 때문입니다.   - 여러 프로세스를 동시 실행하는 시스템에서 사용하게 됩니다.      : 컴퓨터의 메모리에는 한계가 존재합니다. : 통상 RAM용량은 8GB에서 16GM      : 수..
운영체제 - 동기화 이슈 동기화란?   - 작업들 사이에 실행 시기를 맞추는 것을 의미합니다.    동기화가 필요한 이유?   - 다중 스레드를 사용할때, 스레드의 작업 도중에 다른 스레드의 작업 상황을 확인하지 않습니다.   - 이 때문에 여러 스레드가 동일한 데이터에 접근 하는 경우 다른 스레드의 작업이 개입되는 경우가 생깁니다.   - 이러한 경우 의도하는 대로 결과가 나오지 않기 때문에, 동기화를 사용하여 작업의 순서를 지정해주어야 합니다.    Ex)    - 위와같이 Thread A를 진행중에 Thread B가 개입하여 문제가 생길 수 있습니다.   - 이 때문에 동기화를 통해 Thread A가 끝난 뒤, Thread B가 동작하게 설정해야 합니다.    Mutual exclusion (상호 배제)   - 공유 변수 ..
운영체제 - 스레드 스레드란?   - Light Weight Process 라고도 합니다.   - 모든 영역을 독립적으로 갖는 프로세스와는 달리, 스택영역을제외한 부분을 공유합니다.   - 하나의 프로세스에 여러 스레드를 사용 가능하며, 프로세스의 데이터를 스레드가 공유합니다.    멀티 프로세싱과 멀티 스레딩   - 두 작업 모두 CPU의 성능 개선을 위해 사용합니다.    - 멀티 프로세싱       1) 여러 개의 CPU를 병렬 처리하여 여러 프로세스를 처리하는 방법입니다.      2) 멀티 프로세싱은 처음 구조를 잡을때 만들어야 합니다.    - 멀티 스레딩      1) 하나의 CPU 내에서 여러가지 작업을 동시에 처리하는 방법입니다.      2) 멀티 스레딩은 프로그램의 일부 코드만 수정 하여 구현 가능합니다..
운영체제 - 프로세스와 스케줄링 프로그램과 프로세스exe 파일을 실행하면, 프로그램은 메모리에 올라가게 되고, 이를 프로세스라고 합니다.   - 프로세스 : 메모리에 올라간 (= 실행중인) 프로그램   - 응용 프로그램 != 프로세스      : 응용 프로그램은 여러개의 프로세스로 구성되있기때문에 프로세스가 응용 프로그램은 아닙니다.      : 프로세스는 메모리에 올라가는 일종의 작업 단위로 볼 수 있습니다.    프로세스 스케줄링   - 응용 프로그램은 언제, 어떠한 프로그램을 메모리에 올릴지 결정할 수 있어야 합니다.   - 스케줄링 알고리즘은 여러 프로그램을 순차적으로 실행시킬 수 있도록 하는 알고리즘입니다.    프로세스 스케줄링 종류   1. 배치 처리 시스템      - 여러 프로그램을 선입선출형식으로 실행시키는 시스템입니..
운영체제 - 커널과 쉘, 시스템 콜 운영체제란?   - Operating System, OS라고 부릅니다.   - 사용자와 하드웨어간 인터페이스제공, 시스템 자원관리, 응용프로그램 관리 등을 수행합니다.   - 운영체제의 코어(핵심)부분을 커널(Kernel)이라고 부릅니다.    운영체제의 역할   1. 시스템 자원( 컴퓨터 하드웨어 ) 관리      - CPU, Memory, I/P Devices 등을 관리합니다.   2. 사용자와 컴퓨터간 커뮤니케이션 지원   3. 응용 프로그램 제어      - 다양한 소프트웨어의 실행, 접근권한, 사용자 관리 등을 수행합니다.    커널과 쉘   - 커널(Kernel)      : 운영체제의 핵심 부분입니다.      : 운영체제는 커널과 일부 응용프로그램및 보조 기능으로 구성되어 있습니다.   -..