카테고리 없음

컴퓨터 공학 6주차 필기

jiwonabc0080 2025. 4. 15. 01:24

20250414 수업

Linux
특징 : 
- 개방형 open source : 이를 기반으로 한 다양한 파생 OS개발이 가능하다
- interactive system (~time sharing system)이면서 multi-processing 및 multi-user system
- 강력한 서버로서의 지지를 받음

다양한 배포판과 중요성
Debian 계열(Debian, Mint, Ubuntu 등)과 Redhat (Redhat, Fedora, CentOS)계열 등으로 나누어진다

Debian 계열
Debian : .deb 패키지 포맷과 apt 패키지 관리 시스템을 사용 하는 특징을 가지며, Debian 계열의 여러 distros의 기반
Ubuntu : 가장 사용자 층이 넓은 dirtro이고 가장 쉽다

6개월마다 새로운 버전을 발표할 정도로 매우 활발한 움직임을 보인다
Linux Mint : 초보자에게 쉬운 접근성을 자랑하는 Desktop환경 제공으로 유명하다.다른 distro들이 주로 서버 장비를 대상으로 하는 것과 달리 desktop에 집중을 한 배포판으로 windows에서 Linux로 넘어는 초보자들을 대상으로 한다

Red Hat 계열
Linux 비지니스 및 엔터프라이즈 시장에서 매우 큰 위치를 차지하고있다
Fedora : 최신기술을 실험 및 적용하는 데 중점을 둔다

(다음에 다루는 RHEL 의 테스트배드 역할도 겸하며 매우 짧은 릴리스 주기가 특징)
Red Hat Enterprise Linux (RHEL)
최초 출시 이후 가장 상업적으로 성공한 Linux distro. 유료구독을 통해 기술지원과 보안 업데이트를 지원한다
Cent OS
 RHEL 의 무료버전으로 RHEL과 100% binary compatibility를 목표로 한 distro. 보통 RHEL이 나온 후 시간을 두고 배포되어 안정화된 버전으로 유명했음. 하지만 2020년 12월 Red Hat이 개발 중단을 선언하고 CentOS Stream으로 전환하면서 REPL의 다음 버전을 미리 경험하는 distro로 성격이 바뀐다

SUSE 계열
유럽 엔터프라이즈 시작에서의 강자. 오늘날 독립 distribution
Open suse
SUSE Linux Enterprise : RHEL과 함께 엔터프라이즈 시장에서 가장 중요한 distro

Arch 계열 
Arch Linux : 최소주의와 사용자 맞춤형에 중점을 둔 distro 
Manjaro : Arch Linux를 기반으로 하면서도 상대적으로 보다 쉬운 설치와 설정 및 사용성을 제공하는 distro

Window OS : PC에서 가장 널리 사용되는 OS
주요기능
- 레지스트리 : 시스템 및 소프트웨어 설정을 저장하는 데이터베이스 (Database)이다
주요장점 
-사용자 친화적, 뛰어난 호환성, 강력한 보안 기능, 안정적인 운영, 지속적인 업데이트
활용분야
- 개인용 컴퓨터, 노트북, 서버, 임베디드 시스템

OS : Process and Thread

Process : 실행 중인 프로그램의 instance 에 대한 abstraction
- 독립된 실행단위이며, 자체포함 유닛
-시스템 리소스, execution path 데이터 등을 가진다
따라서 Process = 독립된 protected location
- Procee가 Core에서 실행되기 위해 필요한 데이터와 상태 및 레지스터 값들을 가리켜 Process Context (문맥)라고 부른다
- 수행하는 program의 "명령어"와 "데이터"는 RAM에 저장
각 Process는 서로 독립적이고 격리되어 있어서 다른 프로세스의 실행에 문제가 발생해도 영향 받지 않는다
(참고 : Self - contained Unit : 외부의 지원 없이 독립적으로 기능할 수 있음을 의미)

Thread : Process 내부의 execution unit을 abstraction
- OS의 Thread 는 concurrency를 달성하게 해 준다
- H/W Thread 는 Parallelization을 달성하게 해 준다
- 일반적으로 Thread는 병렬적으로 실행가능
- 동기화 관련 문제에 보다 취약하다 (쉬운만큼 에러도 자주 발생)
(참고 : Context changing (context Switch) : 현재 실행 중인 프로세스나 스레드의 상태 정보를 저장하고, 다른 프로세스나 스레드의 상태 정보로 교체하는 과정을 가르킴)
(참고 : Execution Path (실행흐름) )

 

Process states (or Process Life cycle )



Created State

 Memory는 main memory이고, 이미 Process_1이 할당된 상태(검은색 박스)이므로 Ready State라고 봐야한다

Process scheduling의 기본 개념
1.scheduling Queue
Process scheduling은 다음 두가지 주요 Queue를 중심으로 이루어졌다
- Ready Queue : CPU 실행을 기다리는 Process들의 Process Control Block(PCB) 참조가 저장된 자료구조
- I/O Wait Queue : I/O 작업이 완료되면 해당 Process는 Ready Queue로 이동

2.Dispatcher 의 역할 
Process Scheduler 가 Ready Queue에서 Process를 선택하면, Dispatcher 가 이를 CPU에 실제로 할당한다

Scheduling
- 비선점형 Scheduling
- 선점형 Scheduling

Inter-process Communication (IPC)
Process 는 서로 독립된 자원을 가지고 있으며 서로의 연산 수행이 영향을 끼치지 못한다
1. Signal 이용
signal은 kernel이 process에게 비동기적인 알림이나 warning 등을 보내기 위한 방법
- 엄밀히는 Process에게 비동기적인 event를 알리기위한 방법이다
- Kernel 내부에서 signal발생
- 알림에 이용됨
2. shared Memory 이용 : 서로 통신, 한 장비에서 이루어져야한다
3.Message Passing 이용 : 문자열로 명령을 보내면 문자를 해석해서 동작하고, 한 장비에서 이루어지지 않아도 된다, 제일 느리지만 만들기에 가장 쉽다

Memory management Unites (MMU) : CPU (or Program)가 Physical Memory에 접근하는 것을 관리하는 하드웨어 장치
- Program(or CPU)가 사용하던 logical address(=virtual address)가 실제 Memory의 physical address로 변환된다
참고 : Transparent, Logical Address와 symbolic Address
- 오늘날 대부분의 programmer은 variable을 통한 symbolic address를 사용한다

Paging 
동일한 크기로 메모리를 자른다
Segmentation
의미 단위로 메모리를 자른다

File system*
: OS가 HDD나 SSD 등의 저장장치에 데이터를 저장하고 접근하는 방법을 정의 하는 "file과 디렉터리의 구조적 조직"이다
데이터를 관리하고, 저장공간을 효율적으로 사용하며, 사용자와 운영체제 사이의 인터페이스 역할을 수행한다
포맷 : 저장 장치를 사용하기 위해 준비하는과정, 이 과정에서 파일 시스템을 생성한다
( 포맷을 할 때, 운영 체제는 디스크에 파일 시스템을 구축하여 데이터를 저장할 수 있는 구조를 생성 )
기본구성요소
1.file : 데이터의 논리적 단위
2.디렉토리 (또는 폴더) : 파일을 그룹화하여 관리하는 논리적 단위
3.meta-data : 파일에 관한 상세 정보를 포함
4.액세스 제어 : 파일과 디렉토리에 대한 사용자의 접근 권한을 관리

대표적인 file system의 예 : 
1. NTFS (New Technology File System) : 윈도우에서 주요 사용
2. FAT32 (File Allocation Table 32) : 휴대용 장치나 게임 콘솔에서 사용
3. ext4 (Fourth Extended Filesystem) : Linux에서 널리 사용
4. APFS (Apple File System) : apple의 최신 운영 체제

Disk
윈도우에선 시스템에 장착된 저장장치를 의미, 파티션으로 나뉘어 사용되는 저장장치
참고 : Disk and Disc
- 자기 디스크로 둥근 원반에 자성을 가진 물체를 입힌다
- 대표적으로 cd, dvd, 블루레이 등


종류 (1)
1.고정 디스크 (fixed disk) 
- 시스켐에 장착되어 이동불가인 디스크
- SATA HDD, IDE HDD 등
2.이동식 디스크 (removable Disk)
-USB flash Memory
3.Virtual disk
4.raid disk
- 여러 물리적 디스크가 하나의 디스크로 인식되도록 array로 묶인다


종류 (2)
1.primary disk (기본 디스크)
- 파티션 중심으로 관리
2.dynamin disk(동적 디스크)
- volume 중심으로 관리

Partition : 별도의 디스크처럼 동작하는 컴퓨터 하드 디스크의 일부
포맷을 통해, OS에서 사용가능한 volume이 된다
참고 : scheme
- scheme는 특정 목적을 달성하기 위한 조작적인 방법이나 체계 등을 가르킨다
주로 데이터의 구성, 프로토콜, 형식 또는 방법론을 가르키거나 설명하는데 사용된다

Volume 
: partition에 Format을 통해 file system이 구성된 것을 가르킨다

Drive 
: OS가 데이터를 쓰고 읽을 수 있는 상태가 된 Volume, mounting이 이루어진 volume 로, windows의 경우엔 드라이브 문자가 할당된다
Mounting : OS 가 Storage Device(HW) 또는 특정 Partition에 적용된 File System을 인식하고 접근할 수 있게 하는 과정

File
: 컴퓨터에서 사용되는 data 저장의 기본단위
: 컴퓨터를 사용하기 위한 필요한 정보들이 담겼다
파일 이름의 길이 및 사용불가 문자
- windows 11 기준으로 한 경로의 길이는 260자(=MAX_PATH)로 제한된다
- /, ?, :, *, ”, <, >, |

Folder 
: 윈도우 등의 GUI 환경에서 여러가지 종류의 파일을 저장하고있는 곳
: 원래 여러 장의 서류를 합쳐서 보관하기 위한 접을 수 있는 커버를 가르킨다

 

Directory
: 도스나 리눅스 등에서 여러가지 종류의 파일을 저장하고 있는 곳



폴더와 디렉토리 : 거의 비슷하지만 윈도우 환경에서의 네트워크 환경 같은 폴더는 특수 폴더로 cmd 등에서 보이지 않는다
(폴더가 디렉토리보다 더 큰 개념이라고 볼 수 있다)

Path : 파일 시스템 내에서 특정파일의 위치를 나타내는 양식

Absolute Path (절대경로)
- 현 작업디렉토리(cwd)와 관계없이 절대적 위치

Relative Path (상대경로)
- 현 작업디렉토리를 기준으로 상대적 위치를 가르킨다

 

20250416 수업

OS : Process and Thread

Process Schelduling : OS의 핵심 역할
여러 Process가 CPU를 효율적으로 사용할 수 있도록 실행 순서를 정해준다.
- 주요 알고리즘, Linux의 CFS 알고리즘과 vruntime 개념을 다룬다

기본 개념
1.scheduling Queue
- Ready Queue : CPU 실행을 기다리는 Process들의 Process Control Block(PCB) 참조가 저장된 자료구조
- I/O wait Queue : I/O 작업을 수행 중이거나 이를 기다리는 Process들이 대기하는 공간

알고리즘의 구분
- 비선점형 : 실행중인 Process가 자발적으로 CPU를 반환하거나 작업을 완료할 때 다른 Process에 CPU를 할당하는 방식
- 선점형 : OS가 실행중인 Process를 강제로 중단하고, 다른 Process에 CPU를 할당할 수 있는 방식


1.Non-Preemptive Scheduling
비선점형은 단순한 방법이기 때문에 특정상황에서는 비효율적일 수 있다
- interactive task에 불리하다

주요 알고리즘
-FCFS

: Ready Queue에 도착한 순서대로 Process에 CPU를 할당한다, 구현이 단순하지만 긴 Process가 짧은 Process를 지연시키는 Convoy Effect가 발생할 수 있다
-SJF

: Ready Queue에서 CPU Bust time이 가장 짧은 Process를 선택하고 평균 대기 시간을 줄이는 데 효과적이

 

2.Preemptive Schedulung
주요 알고리즘
- SRTF (Shortest Remaining Time First)
: Ready Queue에서 남은 CPU Bust Time이 가장 짧은 Process를 선택, I/O 중심 Process는 짧은 실행 시간을 자주 

 가지므로 대기 시간이 최소화된다.
- 라운드 로빈
: 모든 Process에 동일한 Time Slice(or 타임 퀀텀)을 부여하며, Time Slice가 만료되면 Ready Queue의 맨 뒤로 이동한다

  Time Slice 설정이 시스템 성능에 중요한 영향을 미친다.
- Priority Based Preemptive Scheduling
- Priority Based Preemptive Scheduling**
: 동작 방식 = Process를 여러 단계의 Ready Queue로 나누어 관한다.
상위 Queue일수록 짧은 Time Slice을 부여하면서 우선 실행되는 구조이다. 주로 상호작용이 필요한 foreground process가 상위 Queue에 위치하고, CPU 사용 시간이 긴 Process는 점차 하위 Queue로 이동한다.하위 Queue는 우선순위가

 낮지만 할당된 time slice는 긴 편이다.
하위 Queue에는 주로 백그라운드 프로세스가 위치하게 된다.
처음에 상위 Queue에 들어가 실행되고 점차 하위 Queue에 push 되는 구조이다.
: 특징 =I/O 중심 프로세스는 상위 큐에서 높은 우선순위를 부여받아 빠르게 처리됨. 대화형 프로세스는 짧은 Time Slice을 통해 응답 시간을 단축 -> 사용자 경험을 개선

Memory Management Units (MMU) : MMU는 H/W로 OS는 아니지만, OS가 관리하는 table 정보와 함께 Memory의 

주소 등을 관리하는데 사용된다.
Address의 종류
[Ram (address) -> Physical -> Logical -> Symbolic]
1.Logical address
- 독립적으로 할당되는 주소 공간
- 0부터 시작
- CPU와 Program, programmer가 사용하는 address
2.Physical address
- Physical memory 에 실제 주소
- Memory Management Unit 을 통해 얻어진다.

MMU를 통해 
Program(or CPU)가 사용하던 logical address(=virtual address) 가 실제 Memory의 physical address 로 변환된다.

Address Binding****
프로그래머가 사용하는 symbolic address
CPU가 사용하는 Logical Address

MMU가 알고있는 physical address
- load time binding 
- run time binding

Binding에 대한 정의 및 시점
Binding이란 프로그램 소스 코드의 변수나 명령어 같은 symbolic address를 실행 가능한 Logical Address나 실제 메모리 상의 위치인 Physical Address로 연결하는 것을 의미한다
Binding 시점



이외에도 MMU 등을 통한 virtual memory는 OS가 문제가 발생한 process의 memory영역을 파악하고 해당 resource를 

다시 환수할 수 있음

Disk, Partition, and Volume 
참고)
1.HDD ( Hard disk Drive )


- 컴퓨터에서 데이터를 저장하는 자기디스크 기반의 Storage 하드웨어 장치이고  2024년 현재 NAND Flash Memory

기반의 Solid State Drive(SSD)로 교체되는 추세
2.Partition 
- HDD (or SSD)를 논리적으로 독립된 구역으로 나눈 것: Partitioning을 통해 물리적 HDD를 여러 Partition으로 나눈다.
3.Volume 
- Partition에 File System이 설정 (=Formatting이 이루어짐)된 상태: Formating을 통해 생성한다.
- 해당 volume 을 mount하여 OS는 데이터 저장과 접근을 할 수 있음: 이 경우 Drive가 된다.
4.Drive
- Windows OS가 데이터를 쓰고 읽을 수 있는 상태가 된 Volume을 가리킨다.
- 쉽게 말하면 Windows OS에서 mount가 이루어진 volume 을 의미한다.( windows의 경우엔 드라이브 문자가 할당됨 )
5. File system
- HDD 와 SSD는 데이터 저장의 물리적 매체이다.
- 이 HDD 나 SSD에 fdisk와 같은 프로그램을 이용하여 partitioning을 수행해서 내부에는 여러 파티션을 생성할 수 있음.
- formatting을 통해 partition에 file system을 생성하여 volume이 된다.
      -Logical Volume Manager (LVM)를 통해 여러 partitions를 하나의 volume으로 만들어 하나의 file system을

       생성할 수도 있다.