본문 바로가기

KNU Freshman/컴퓨터학개론

(9) 입출력 장치(HDD) & Thread, Lock

입출력 (I/O) 장치 및 파일 시스템

입출력 장치

입출력은 컴퓨터 시스템에 있어서 사용자와의 상호작용을 위한 중요한 도구임

   – 입출력 장치의 : 키보드, 마우스, 디스플레이, 디스크

주요 이슈 사항

    – 여러 종류의 입출력 장치는 어떻게 컴퓨터 시스템에 통합될 있는가?

   – 입출력을 효율적으로 있는 방법은 무엇인가?

 

입출력 장치와의 상호 작용

폴링(Polling)인터럽트(Interrupt) 방식을 통하여 입출력 장치의 상태 데이터를 읽음

• <폴링 방식>

   – 운영체제는 상태 레지스터를 주기적으로 읽어 입출력 장치가 사용할 있는지를 확인함

   – 동작 방식이 단순하여 구현하기가 쉽지만 입출력 장치가 사용되는 동안 CPU낭비함

 

• <인터럽트 방식>

   – 입출력이 이루어지는 동안 프로세스를 재우고, 다른 프로세스로 전환함

   – 입출력이 완료되면 인터럽트를 발생시켜 잠든 프로세스를 깨움

 

 인터럽트 방식이 폴링 방식에 비하여 CPU 사용 효율이 높지만, 항상 좋은 방식은 아님

       – 입출력이 매우 짧게 이루어지는 경우는 인터럽트 방식이 비효율적임

            • 문맥 교환(Context Switching)으로 인하여 오히려 느려짐

 

하드 디스크의 구조 

2 ~ 10 헤드로 구성( 플래터2개의 헤드)

     - HDD 당당 1 ~ 5개의 플래터

지름: 2.5” 14”

용량: ~ 22TB (SSD: ~ 100TB)

섹터 크기: 64 bytes to 8K bytes

     - 대부분의 PC에서는 512 bytes

•한 면 당당 700 ~ 20,480개의 트랙

트랙 당당 16 ~ 1,600개의 섹터

 

* LP판이랑 같은 원리

하드 디스크의 동작

하드 디스크의 입출력 시간은 회전(Rotation), 찾기(Seek),전송(Transfer) 시간으로 이루어짐

 

하드 디스크의 성능

입출력 시간을 계산하여 하드 디스크의 성능을 판단함

순차적(Sequential) vs. 무작위(Random) 접근에 따른 성능 차이가 있음

일반적으로 Seek time > Rotation time > TransferTime으로시간 소요

    • Seek timeRotation time밀리초이며, Transfer time마이크로초 수준임

순차 접근의 경우 Transfer time, 무작위 접근의 경우에는 Seek + Rotation time중요함

파일 시스템

부팅 운영체제의 번째 작업은 루트 파일 시스템을 구성하는 것임

   – /외부 하드 디스크, SSD, CDs, DVDs, USB 메모리 등에서 부팅 이미지를 읽음

   – 장치에서 파티션 정보를 읽고 마운트(Mount)

      • 마운트 정보는 MBR(Master Boot Record)저장되어 있음

      • 마운트: 저장 장치에 접근할 있는 경로를디렉터리 구조에 편입시키는 작업

 

디렉토리 파일

마운트된 파티션은 디렉토리와 파일로 구성되어 있으며, 이들을 파일시스템에서 관리함

    – 파일 시스템: 파일을 관리하기 위한 체계로 FAT, NTFS, ext2/3/4 등이 있음

    – 파일

       • 개의 구성요소로 이루어짐: 데이터와 메타데이터

           – 데이터는 실제 파일 데이터를 저장하는 것으로 여러 개의 블록으로 이루어짐

           – 메타데이터는 파일에 관한 정보를 저장하는 것으로 이름, 크기, 생성/수정/접근날짜, 소유권 등에 대한 정보를 포함함

       • 파일은 확장자를 가질 있으나, 특별한 의미가 있는 것은 아님(연결 프로그램을 지정하기 위하여 사용됨)

디렉토리

     • 계측적인 트리 형태의 파일 구조

     • 디렉토리도 파일의 종류로 데이터와 메타데이터를 가짐

 

상대 경로와 절대 경로

파일의 위치를 가리키는 종류의 경로

   – <절대 경로>

    • 루트(최상위위치)부터 파일까지의 모든 경로를 다 포함

       – : /home/cbw/cs5600/hw4.pdf

       – : C:\Users\cbw\Documents\

   –<상대 경로>

      • 운영체제는 프로세스마다 현재 작업 중인 디렉토리 경로를 기록하고 있음

      • 현재 작업 중인 디렉터리에서 파일까지의 경로

      • [작업 중인 디렉토리 = /home/cbw]:

             –syllabus.docx [ /home/cbw/syllabus.docx]

             – cs5600/hw4.pdf [ /home/cbw/cs5600/hw4.pdf]

             –./cs5600/hw4.pdf [ /home/cbw/cs5600/hw4.pdf]

             –../amislove/music.mp3 [ /home/amislove/music.mp3]

동시성(Concurrency)

여러 프로세스를 실행하기 위해 운영체제는 프로세스 스케줄링을

    – 동시에 프로세스를 실행하기 위해 선점형 알고리즘을 채택

동시성(Concurrency)병렬성(Parallelism)차이

 

프로세스(Process)스레드(Thread)

 프로세스(Process)

- 프로세스는 독립된 주소 체계(메모리)가지므로 서로 다른 프로세스와 데이터를 공유하기 위해서는 특별한 방법이 필요함

- IPC(Inter-Process Communication)사용해서 프로세스간 통신을 하여 데이터를 공유할 있음

- 하지만, 이러한 IPC프로그래밍이 어렵고, 운영체제에서 많은 자원이 지원되어야 하므로 비효율적임

 

스레드(Thread)

- 프로그램(프로세스) 내에서 스케줄링이 가능한 작업 단위

- 프로세스는 독립된 주소 체계를 가지는 반면 쓰레드는 동일한 주소 체계에서 동작하므로 서로 데이터(변수)공유가 가능함

➔스레드로인해 효율적인 실행이 가능해진 반면, 심각한 문제를 야기함

 

식사하는 철학자들(Dijkstra)

5명의 철학자, 5개의 , 1개의 스파게티 접시

철학자는 생각하고 먹는 것만

스파게티를 먹기 위해서는 2개의 포크가 필요함

모든 철학자들이 굶는 상황은 언제인가? -> 포크 1개씩 잡기 etc

철학자들이 굶지 않게 있는 방법은? -> 순서대로 먹기(규칙 생성)

 

경쟁 상태(Race Condition)

여러 개의 작업이 동시에 공유 자원을 사용하는 상태를 경쟁 상태라고 하며, 오류가 발생할 있음

 

경쟁 상태와 임계 영역

경쟁상태는 항상 발생하는 것이 아님 (non-deterministic)

임계 영역은 공유 자원을 사용하는 프로그램 코드를 지칭하며, 여러 개의 작업이 동시에 공유 자원에 접근할 임계 영역은 보호받아야

 

 

계영역을 보호하기 위한 Lock

Lock

     – 임계 영역에 하나의 작업만 허용하기 위한 방법으로 여러 종류의 Lock있음

 

 

Lock경우, 프로그램의 성능이 저하되거나 교착상태(Dead Lock)빠질 있음

     • 이상의 작업이 서로 상대방의 작업이 끝나기기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태

     • 데드락이 발생하면 프로그램이나 시스템을 재시작하는것이 가장 효율적임

         – 데드락을 예방하기 위한 여러 방법이 있으나, 효율성이 떨어지는 문제 발생

     • 그러므로, 데드락이 발생하지 않도록 프로그램을 설계 구현하는 것이 중요함

 

 

 

'KNU Freshman > 컴퓨터학개론' 카테고리의 다른 글

(11) 네트워크  (1) 2024.06.03
(10) 통신의 발전 과정  (0) 2024.05.20
(8) 가상 메모리  (0) 2024.04.16
(7) 운영체제에서의 CPU 스케줄링  (1) 2024.04.15
(6)-2 운영체제의 주요 기능  (0) 2024.04.15