CS
-
XV6 - 이론 정리_1CS/OS 2022. 5. 13. 18:03
앞서 배운 OS 내용을 바탕으로 실제 MIT 교육용 코드에서 어떻게 동작하는지 알아보겠습니다. XV6 라는 OS를 가져와서 사용하였습니다. OS 중요 요소는 Time-sharing / Isolation / Interaction으로 나눌 수 있는데, Time-sharing은 하나의 Program이 독점하는 것을 막기 위해, Isolation은 사용자에게 모든 권한을 주지 않으며, Kernel 영역에서만 Resource를 접근하기 위함이라고 설명하였다. 그렇다면, Interaction은 어떻게 이루어질까? Unix System에서는 Process간에 file descriptor를 통하여 Interaction이 발생한다. File Descriptor가 존재함으로써, Kernel이 예외 사항을 처리 할 수 있다..
-
3. Dual Mode / System Call / OS ServiceCS/OS 2022. 5. 11. 15:01
앞선 장에서 언급하였듯이, OS는 App 이 Hardware 접근을 직접하지 못하도록 한다고 하였다. 사용자가 하드웨어의 자원에 접근하는 것은 매우 위험한 동작이다. 만약에 Hardware 접근을 직접 할 수 있다면, 서버 컴퓨터에 접근하여 강제 종료 명령어를 넣는다던지 하여 동작을 멈출 수 있다. 이러한 문제들을 막기 위해 Dual Mode라는 개념이 나왔다. Dual Mode CPU 내부의 레지스터(register)의 비트(bit)를 활용하여 플래그(flag) User Mode = 0 / Kernel Mode = 1 1. User Mode Application 과 같이 User가 사용하고 있는 영역 Hardware resource 접근 X ( 요청하려면 System Call 필요 ) 2. Superv..
-
2.OS 역사CS/OS 2022. 5. 6. 14:46
운영체제는 컴퓨터가 발전하면서 같이 발전하게 되었다. 초기 컴퓨터는 크게 3가지로 구성되었다. 카드 리더, 프로세서, 프린터이다. 카드 리더는 입력기이다. 입력은 종이에 입력할 코드에 맞는 구멍을 뚫어서 넣어주는 방식이었다. 프로세서는 현재와 비슷한 계산하는 역할이었고, 프린터는 입력에 대한 결과를 종이에 찍어서 보여주었다. 1. Batch Processing System 프로그램을 수행할 때마다 컴파일->링크->로딩 순서를 오퍼레이터가 직접 입력해주었다. 이러한 과정을 자동화한 것이 batch processing system 이다 위 과정을 하나의 프로그램으로 작성하여 프로세서의 메모리안에 할당해주었는데, 이 프로그램을 resident monitor라고 불렀다. 2. Multi Programming S..
-
1. 운영체제(OS)란?CS/OS 2022. 5. 6. 14:22
운영체제(Operating System)은 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 우리가 사용하는 모든 프로그램들은 OS에서 관리 및 제어한다. E.g) Window / Linux / Mac 1. 운영체제의 목적 컴퓨터의 하드웨어를 관리 및 사용자에게 편의를 제공하는 목적 하드웨어에는 CPU / Memory / Disk / KeyBoard / Mouse / Monitor / 등이 있어 이를 관리가 잘되어야 좋은 OS라고 할 수 있다. OS가 없다면 사용자는 모든 하드웨어 관리를 일일히 해주어야 하기 때문에 엄청난 번거로움이 발생한다. 즉, 운영체제는 컴퓨터의 성능을 높이고(performance), 사용자에게 편의성 제공(Convenience)을 목적으로 하는 컴퓨터 하드웨어 관리하는 프로..
-
6. ThreadCS/OS 2022. 4. 27. 23:09
프로세스 생성 원리 프로세스는 프로세스에 의해 만들어진다. 컴퓨터가 부팅이 되면 운영체제가 메모리에 올라오는데 운영체제가 처음으로 수행하는 일 중에 하나는 최초의 프로세스를 생성하는 것이다. 처음 만들어진 프로세스가 다른 프로세스를 만들고 그 프로세스가 또 다른 프로세스를 만드는 과정을 반복한다. 최초의 프로세스는 Init이다. init은 UNIX 운영체제 기준이다. 여러 다른 프로세스들이 생성되면 위 그림처럼 트리로 나타낼 수 있다. 프로세스는 각각 고유의 번호를 갖는데 이를 PID(Process Identifirer)라고 한다. Process 생성하기 위해서는 System Call( Fork() ) -> Process 내에서 File 실행 System call( exec() ) -> Process 종..
-
4. ProcessCS/OS 2022. 4. 27. 20:49
Multi Tasking( Multi Processing ) 운영체제(OS)를 통해 여러 프로세스(프로그램)를 실행하고 관리 ( UNIX / WINDOW ) 즉, OS를 통해 CPU가 작업하는데 필요한 자원(시간)을 프로세스 또는 스레드간에 나누는 행위 Multi User -> UNIX / NT SEVER UNIX =C언어로 작성 / Kernel 구조 / 확장성 Process 프로그램이 실행 중이라는 것은 디스크에 저장되어 있던 프로그램을 메모리에 저장한 뒤 운영체제의 제어를 받을 수 있는 상태가 된 것을 의미 메인 메모리에 할당되어 실행중인 상태인 프로그램 프로세스는 job, task 등으로 불리기도 한다. 메모리 구조 Stack , Heap , Data , Code로 구성 1. STACK - 데이터를..
-
INDEX 조각화( Rebuild , Reorganize )CS/DB 2022. 3. 4. 19:12
PAGE SPLIT INSET , UPDATE 동작이 발생 시 여유 공간의 부족으로 페이지 변화가 일어나는 것 저번에 올린 부분과 같이 PAGE = SQL Server 기본 I/O 단위 / 1Page = 8KB = 8016byte / 8page = 1Extent CREATE TABLE PageSplitTest ( --int: 4byte / --nchar(1000) 2,000byte Id int not null , TextChar nchar(1000) not null ) GO --클러스터형 인덱스 생성 CREATE CLUSTERED INDEX CL_ID ON PageSplitTest (Id) GO --하나의 row당 4 + 2000 = 2,004byte --1Page(8KB) = 8192byte --4개의..