1학년 2학기 중간고사 컴퓨터 시스템 일반

보조 기억 장치
  • 순차 접근 기억 장치
    • 순차적으로 데이터 블록 R/W ex) 자기 테이프
    • 대용량 컴퓨터에서 백업, 장기간 보관시 주로 사용

  • 직접 접근(Direct Access) 기억 장치 = 임의 접근(Random Access) 기억 장치
    • 임의의 위치에 있는 데이터 블록 R/W ex) 자기 디스크

  • 파일 접근에 걸리는 시간 (접근 시간 = 탐색 시간 + 회전 지연 시간)
    • 탐색 시간(Seek Time) : 헤드를 원하는 트랙에 위치하는데 필요한 시간
    • 회전 지연 시간(Latency Time) : 원하는 데이터가 헤드 아래 올 때까지 디스크가 회전하는 시간
    • 전송 시간(Transfer Time) : 보조 기억 장치에서 메모리로 전송되는 시간
디스크 스케줄링
  • FCFS(First Come First Served, FIFO)
    • 요청 순서대로 접근
    • 장점
      • 공평성 보장
      • 프로그래밍 쉬움
    • 단점
      • 효율 낮음

  • SSTF(Shortest Seek Time First)
    • 가까운 요청 먼저 처리
    • 장점
      • FCFS보다 처리량 많음
      • 평균 응답 시간 짧음
    • 단점
      • 응답 시간 편차 큼
      • 기아 현상 발생

  • SCAN
    • 한쪽 끝에서 다른쪽 끝으로 왕복
    • 헤드 진행 방향 상 가장 가까운 요청 처리(SSTF의 차별 대우 방지)
    • [1, N] 범위 왕복 : SCAN
    • [min, max] 범위 왕복 : LOOK

  • C-SCAN
    • 한쪽 끝에서 다른쪽 끝으로 한쪽 방향으로만 이동
    • SCAN의 대기 시간 균등화
    • [1, N] : C-SCAN
    • [min, max] : C-LOOK
파일
  • 파일의 개념
    • 상호 관련이 있는 정보의 집합
    • 파일 = 프로그램, 자료의 합집합
      • 프로그램 : 소스, 목적 프로그램
      • 자료 : 비트, 바이트, 라인, 레코드의 연속

  • 파일 속성
    • 이름 : 사람이 읽을 수 있는 형태인 유일한 정보
    • 식별자 : 시스템에서 파일을 확인, 숫자로 표현
    • 타입 : 여러 유형을 제공하는 시스템 위해 필요
    • 위치 : 파일이 존재하는 장치&위치에 대한 포인터
    • 크기 : 현재 크기 & 최대 허용 크기
    • 보호 : 읽기/쓰기/실행 권한 제어
    • 시간/날짜/사용자 식별 : 생성, 최근 변경, 최근 사용 여부
실행 가능 exe, com, bin 실행 가능한 기계어 프로그램
목적 obj, o 컴파일된 기계 언어
소스 코드 c, cc, java 다양한 언어로 된 소스코드
문서 txt 텍스트 데이터, 서류
워드 프로세서 rtf, docx, hwp 다양한 워드 프로세서 형식
라이브러리 lib 라이브러리 루틴
인쇄/뷰 pdf, gif, jpg 인쇄기 출력용(ASCII or Binary)
보관 zip, tar, rar 압축 or Union
  • 파일 조작 : OS는 파일 조작을 위해 SysCall 사용
  • create
    • 저장할 공간 탐색
    • 새로 생성된 파일에 대한 항목 디렉토리에 생성
  • write
    • 파일명&기록할 정보를 명시하는 SysCall 실행
    • 이름 : 디렉토리 탐색
    • 시스템은 파일 내의 다음 쓰기가 일어날 위치를 가리키는 쓰기 포인터 유지
    • write 발생 시 포인터 갱신
  • read
    • 파일명&읽을 블록 위치를 기술하는 SysCall 실행
    • 다음 read가 발생할 위치를 가리키는 읽기 포인터 유지
  • reposition
    • 적합한 항목 탐색 후 위치 변경
  • delete
    • 탐색 후 모든 공간 해제 & 항목 삭제

  • 파일 접근 방법
    • 순차 접근 (Sequential Access)
      • 레코드 순서대로 파일 정보 정리 ex) 에디터, 컴파일러
      • read next : 파일의 다음 부분 차례로 읽기
      • write next : 파일의 에 추가
    • 직접 접근 (Direct Access)
      • 파일 : 고정 길이 논리 레코드로 구성
      • 디스크 모델 기반, 파일은 번호를 갖는 인련의 블록/레코드로 간주
      • read n, write n(n = 블럭 번호)
    • 색인 접근 (Index Access)
      • 색인은 다양한 블록에 대한 포인터를 포함
      • 레코드 찾는 방법
        1. let idx = 원하는 레코드의 포인터
        2. idx를 이용해 레코드 얻어오기

  • 디렉토리에 있는 파일 정보
    • 파일 이름
      • 기호로 되어있음
      • 특정 디렉토리에서 유일
    • 파일 유형
    • 파일 위치
      • 실제 저장되어있는 기억 장소 위치 포인터
    • 파일 보호
      • 읽기/쓰기/실행 권한
    • 사용 수
      • 현재 파일을 사용하는 프로세스의 수
    • 소유자
파일 관리 시스템
  • 파일 관리 시스템의 기능
    • 기억 공간 효율적 사용, 파일 접근 효율적 수행위한 정책 필요
    • 파일 접근 권한 한정
    • 파일 저장 장소 파악
    • 사용중인 파일 반환시 회수&해당 파일을 요구하는 다른 사용자에게 통보
    • 파일 속성 관리 (디렉토리 사용)

  • 할당 방식
    • 연속 할당
      • 각 파일이 연속된 공간을 차지하도록 할당
      • 장점
        • 빠름
        • 특정 부분에 바로 접근 가능
      • 단점
        • 외부 단편화 발생
        • 파일 공간 크기 결정 어려움
    • 연결 할당
      • 파일 = 디스크 블록의 연결리스트
      • 디렉토리는 first, last포인터 저장
      • 장점
        • 단편화 없음
      • 단점
        • 탐색 느림
        • 포인터 공간 필요
        • 신뢰성 낮음
    • 색인 할당
      • 각 파일은 디스크 블록 주소를 모아놓은 색인 블록 가짐
      • 장점
        • 신뢰성 높음
      • 단점
        • 색인 블록 공간 필요
입출력 시스템
  • 입출력 강치의 개념
    • 외부 데이터를 주기억 장치로 들여오거나 주기억 장치 내용을 외부 메체에 저장하기 위해 사용
    • 기억장치 & 출력장치 & 입력장치

  • 입출력 모듈 = 입출력 제어기
    • 프로세서와 특정 임출력 장치 사이의 인터페이스 담당
    • 프로세서로부터 명령어 전달받고 장치로부터 관련 메시지 인식
    • 디스크로 전송될 때까지 데이터 보관 위한 버퍼 제공
    • 직접 메모리 전송을 수행하기 위한 제어와 필요한 레지스터 제공
    • 주변기기 제어
    • 버퍼를 통한 데이터 전송/복사
    • 인터럽트 신호 생성(전송 완료 통보)
    • cpu -> 입출력 모듈(명령어)
    • cpu < 입출력 모듈(인터럽트)
    • 입출력 모튤 <-> 장치(데이터)

  • 입출력 제어 방식
    • 프로그램 제어 입출력
      • CPU가 계속 IO장치 검사&처리
      • 프로세서 내부에 있는 입출력 데이터&주소레지스터를 입출력 모듈과 연결
      • 레지스터와 버스 사이에서 데이터 직접 전송
    • 인터럽트 기반 입출력(외부 입력 제어)
      • CPU관여
      • 프로세서는 수행해야 할 입출력 연산의 대기시간 소모X -> 효율성 증가
    • DMA입출력
      • CPU관여X
      • 직접 메모리 접근(Direct Memory Access)
        • 하드웨어가 프로세서 도움 없이 메인메모리로부터 직접 제어하기 위한 데이터 전송
      • 프로세서 -> DMA제어기 (시작 명령)
계층화
  • 계층화의 개념
    • 컴퓨터 사이의 통신과정을 계층으로 나눈 것
    • 필요한 전체 통신 기능 중 유사한 기능을 묶어 수직적인 계층으로 분할
    • 각 계층은 서로 독립적
    • 각 계층은 하위 계층으로부터 받는 서비스 이용
    • 각 계층은 상위 계층에 서비스 제공

  • 계층화 모델
    • 각 계층 내에서 일어나는 프로토콜 기능 정의
    • 상위 계층과 하위 계층간의 상호작용 정의
OSI 참조 모델
  • OSI 참조 모델의 개념
    • 충돌 완화를 위하여 국제 표준화 기구(ISO)에서 표준화된 네트워크 구조를 제시한 모델
    • 개방형 시스템을 서로 연결하는 모델(Open Systems Interconnection)
      • 개방형 시스템 : 표준 프로토콜에 따라서 만들어진 시트템, 제조사 등에 상관 없이 어디에나 연결 가능한 시스템
  • 계층의 구성
    • 서로 연관된 7개의 계층으로 구성
    • 캡슐화 : 송신측에서 상위 계층의 메시지에 현재 계층 정보 추가 후 하위 계층으로 전달
    • 메시지 복수 : 수신측에서 전달받은 메시지를 해체하여 현재 계층에서 필요한 정보를 꺼내고 나머지를 상위 계층에 전달
    응용 계층 사용자 인터페이스 제공
    표현 계층 번역/압축/암호화/보안 기능
    세션 계층 세션의 설정 변경 해제
    세션 : 종단간 일회용 논리적 연결
    전송 계층 port로 식별 프로세스간 데이터 송수신
    어떤 앱이 요청을 보냈고, 어떤 서비스가 받아야 하는지 규정
    연결제어, 흐름제어, 에러제어
    네트워크 계층 IP로 식별 호스트간 데이터 송수신
    복수의 통신망을 통한 서로 다른 네트워크간의 전송
    라우팅 : 패킷 전달 경로 설정
    데이터 링크 계층 mac으로 식별 논리적으로 연결된 노드간의 데이터 송수신
    접근제어, 에러제어, 흐름제어
    물리 계층 전송 매체가 직접 연결됨
    비트를 적절한 신호로 변환
    비트의 전자기적/광학적 표현방법 규정
    장치 연결 부분의 물리적 특성 매칭 (포트 규격, 핀 개수)
    • 에러 제어 : 비트에 대한 에러 검출/복구
    • 흐름 제어 : 수신 장치의 처리 능역에 맞게 송신 속도 조절
    • 접근 제어 : 충돌 방지
IP
  • IP주소의 개념
    • 인터넷 체계에서 인터넷과 연결된 여러 기기를 서로 구분할 수 있는 규칙
  • internet / internet
    • internet (인터네트워크, 보통명사, inter + network)
      • 여러 개의 통신 네트워크를 연결하는 통신망
    • Internet (인터넷, 고유명사)
      • 인터네트워크 중 TCP/IP 프로토콜을 사용하는 것

  • IP주소의 구조
    • 현재 사용중인 버전 : IPv4, IPv6
    • IPv4 : 32비트로 구성, 이론상 4,294,967,296개 가능
    • 옥텟 : 8bit씩 묶은 마디
    • IP주소 = 네트워크 주소 + 호스트 주소
      • 네스워크 주소
        • 네트워크로 구분
        • 같은 네트워크 -> 같은 네트워크 주소
        • 라우팅 과정은 네트워크 주소 확인
      • 호스트 주소
        • 네트워크에 연결된 기기들
        • 같은 네트워크 -> 다른 호스트 주소
  • IP주소 클래스
    클래스 분류 기준 형식 서브넷 마스크 네트워크 주소 개수 호스트 주소 개수
    클래스A 최상위 1비트 0 N.H.H.H 225.0.0.0 27-2 224-2
    클래스B 최상위 2비트 10 N.N.H.H 225.225.0.0 214 216-2
    클래스C 최상위 3비트 110 N.N.N.H 225.225.225.0 221 28-2
    클래스D 최상위 4비트 1110 멀티캐스트용
    클래스E 최상위 4비트 1111 연구/개발용
네트워크 구성 방식
  • 스타형
    • 허브를 중심으로 다른 컴퓨터와 직접 연결
    • 장점
      • 유지 보수 쉬움
    • 단점
      • 허브 고장시 전체 마비
  • 링형
    • 이웃끼리 연결
    • 장점
      • 일부 회선에 문제 있어도 전송 가능
    • 단점
      • 하나라도 고장나면 전체 동작X
  • 그물형
    • 목적지까지 여러 경로 존재
    • 장점
      • 회선 장애에 강함
    • 단점
      • 설치 비용 비쌈
  • 버스형
    • 하나의 전송 회선에 여러 대 연결
    • 장점
      • 설치 비용 저렴
    • 단점
      • 장애 발견/관리 어려움
      • 전송 대기 자주 발생
  • 트리형
    • 중앙 컴퓨터부터 다른 컴퓨터까지 하나의 회선으로 연결
    • 장점
      • 확장 쉬움
    • 단점
      • 중앙 장애시 전체 영향
리눅스
  • 리눅스란?
    • 멀티 유저, 멀티 태스킹 지원
    • UNIX와 유사
    • 리누스 토발스에 의해 개발된 공개OS
    • 독점/배타X, 프리 소프트웨어
    • GNU라이센스 => 누구에게나 자유롭게 배포

  • GNU 프로젝트
    • 프로그램 복제/공유 자유
    • 개작 자유
    • 개작 후 배포 자유

  • 리눅스의 역사
    • 1969 - UNIX 개발(어셈블리어)
    • 1971 - C언어로 UNIX 재작성
    • 1985 - GNU 선언문 발표
    • 1991 - 리눅스 커널 완성

  • 리눅스의 특징
    • 완벽한 멀티 유저, 멀티 태스킹 OS
    • CLI, GUI 지원
    • 오픈 소스
    • 여러 종류의 파일 시스템 지원 (FAT, FAT3, NTFS, NFS, xfs)
    • 쉘 제공 : 대화형 사용자 인터페이스
    • HW 효과적 사용 : 메모리 적게 차지
    • 인터넷의 모든 기능 지원
    • 가술 지원 어려움

  • 배포판
    • 전체 시스템을 구성하는 SW패키지 형태
    • 데비안 리눅스
      • GNU 공식 후원
      • 제품
        • 우분투 : 사용자 편의성 중점
        • 민트
    • 레드햇 리눅스
      • 알기 쉬운 인스톨러, 관리도구 사용
      • RPM(Redhat Package Manager) 지원
      • 제품
        • 페트라 : 래드햇 후원, 기술 지향, 짧은 간격으로 업데이트
        • CentOS : 래드햇 엔터프라이즈 리눅스 배포판, 기업용 서버로 많이 사용, 기술지원X

  • 리눅스의 구조
    • HW
      • cpu, gpu, ram 등의 하드웨어
    • 커널
      • 가장 핵심적인 연산이 이루어지는 곳
      • 하드웨어 제어
      • 프로세스/메모리/파일 관리
      • 프로그램과 HW사이의 관리자
      • 명령어를 해석하여 커널에 저장
      • 대화형 사용자 인터페이스
      • 명령어 이해&실행
      • 종류
        • 본쉘(bash)
        • C쉘(csh)
        • 콘쉘(ksh)
      • 커널 -> 쉘 (작업 지시)
      • 커널 <- 쉘 (결과 전송)