본문 바로가기
공부/컴퓨터 공학, 학교 공부

5월 둘째주 학교공부 정리

by Excidus 2023. 5. 14.

운영체제

배운 내용: 디스크의 내부구조 설명, 디스크 스케줄링 알고리즘

  • Disk service time
  • Seek time: 디스크 헤드가 원하는 데이터를 찾기위해 트랙으로 이동하는 시간, 보통 디스크 시간으로 취급
  • Rotational Delay: 평균적으로 반바퀴, 헤드는 기다리고 플래터가 돌아서 다시 만나는 데 까지 걸리는 시간, RPM으로 표기
  • Data transfer time: 디스크에 있는 데이터를 메모리로 이동

저장장치

  • 하드디스크
  • SSD: 비휘발성, nvm, 디스크보다 신뢰성이 높음
  • Magnetic tape: 디스크보다 이전에 사용되던 저장장치, 대량의 데이터 보관, 백업 용도로 사용, 느림, 대용량
  • NAS: NFS-> 유닉스, CIFS -> 윈도우

디스크 스케쥴링 알고리즘: Seek time, Rotational delay를 최소화, rpm은 고려하지 않고 헤드가 얼마나 조금 돌아가는지를 고려한다.

  • FCFS: 먼저온거 먼저처리
  • SSTF: 그리디 알고리즘 사용, starvation 발생, 반복을 여러번 한다, 현재 디스크의 헤드 위치에서 가장 가까운 실린더에 대한 요청을 우선적으로 처리.
  • SCAN: 디스크의 한 쪽 끝에서 반대쪽 끝으로 이동하면서 처리하며, 마지막 실린더에 도착하면 반대 방향으로 스캔을 진행
  • C-SCAN: 디스크의 한 쪽 끝에서 반대쪽 끝으로 이동하면서 처리하며, 마지막 실린더에 도착하면 시작점으로 되돌아간 후 다시 스캔을 진행

디스크 관리

  • physical formatting (low-level formatting)

디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정이다.각 섹터는 header와 실제 data와 trailer로 구성되어 있다.header와 trailer는 sector number ,ECC(error-correcting code)등의 정보가 저장되면 컨트롤러가 직접 접근 및 운영을 한다.

  • partitioning

디스크를 하나 이상의 실린더 그룹으로 나누는 과정.OS는 이것을 독립적 디스크인 logical disk로 취급한다. 파티션마다 파일 시스템을 만든다.

  • logical formatting

파일 시스템을 설치하는 것

파일에 대한 정보 -> inode.FAT, inode, free space등의 구조를 포함.

 

Modern I/O system

I/O시스템은 종류가 다양하다.

  • interrup
  • polling: 지속적으로 체크

→ 둘이 같이 사용하기도 함

  • port I/O
  • Memory-mapped I/O: 메모리 주소를 매핑, I/O를 위해 할당

Device

  • block: 블락 단위로 데이터 전송
  • character: 모아서 하면 안되는 경우 ex) 키보드 같은 경우 바로바로 보여줌
  • network

blocking과 nonblocking

커널


소프트웨어 공학

지난 주: dependablility에 대해서 배움

이번 주: Reliability Engineering

배울 내용: Availability and reliability, reliability requirements, programming for reliability

 

Software reliability: 소프트웨어를 믿을 수 있을 지 고려한다.

프로그램에 생긴 오류를 non-critical하다고 판단하면 게임을 출시후 후폭풍을 뒷수습하는 경우가 있다.

 

fault: 프로그램에 생긴 오류

error: fault로 인해 발생한 문제를 error라고 함

failure: error를 수습하지 못한 상황

→ fault와 failure의 용어를 사용을 구분해야한다. fault가 발생한다고 무조건 에러발생은 아님

 

fault management

  • fault avoidance: 최대한 발생안하도록 처리한다
  • fault detection: 자동화 오토매틱툴을 사용, fault를 찾아낸다.
  • fault tolerance: fault에 프로그램이 잘 버틸 수 있도록 설계한다

→ fault를 최대한 줄이기 위해 노력한다. fault가 있다고 증명하는 것은 쉽지만 반대로 없다고 증명하는 것은 어렵다.

 

Availability and reliability: 둘이 깊은 관련이 있어서 하나가 떨어지면 다른 하나도 같이 떨어진다

reliability: 시스템이 원하는 대로 돌아가는 것데 대한 성질 → specification대로 동작하는지 → verification과 연관

→ 위의 두개는 숫자로 나타내기 쉬움

perception of reliability: 제대로 반영하기 어려움, 사람마다 reliability에 대해서 다르게 느끼는 문제

availability perception: 사용하는 유저수와 사용시간에 따라서 영향을 받음, 추가로 특정시간이나 어떤 주기로 사용하는 지에 대해서도 영향 받음

 

Reliability requirement

  • system reliability requirements
  • fuctional reliability

Reliability metrics: se철칙인 현재상황에 맞는 것을 가져다 쓰는 것과 관련

POFOD: 시스템이서 제대로 응답하지 못하는 경우, 요청을 무시당하는 경우

ROCOF: failure가 일어날 비율, MTTF의 역수

MTTF: 한번 failure가 발생하고 다음 failure가 발생하기까지의 기간

 

Availability

avail: 항상 가동중이고 항상 응답해야하는 시스템에서 사용, ex) 웹사이트

non-fuctional reliability requirement: MTTF보고 요구사항 정리 → 이점: redundancy 확보에 유리

Reliability 확보를 위한 programming

dependable programming

가이드라인

  1. information hiding: visibility를 잘 설계해서 다른 사람들이 알아볼 수 있도록 정리
  2. 메소드, 펑션 작성시 주의: public 메소드의 경우 주의를 해서 작성해야한다
  3. fault tolerance와 관련: ex) 자바의 경우 에러메세지를 강제적으로 작성해야함
  4. ex) goto, FP(floating point number), pointer를 사용하지 않는다
  5. 프로그램 진행하다가 특정지점으로 이동하기 쉽도록 설계한다
  6. dynamic memorry allocation에서 배열에서 벗어나지 않도록 한다.
  7. 외부라이브러리 사용
  8. 상수를 사용할때 주의 한다 ex) PI

Safety engineering

safety와 reliability: 둘이 밀접환 관련을 가지고 있다. 하지만 unsafe하지만 reliable한 시스템도 있고 reliable하지만 unsake한 경우도 있다.

Hazard: 사고로 일어날 수 있는 조건, 발생할 가능성과 피해를 포함

Risk: hazard의 발생 가능성과 피해를 고려해서 risk가 얼마나 발생하는지 고려한다.

 

Safety specification

Hazard-driven analysis

  • hazard identify
  • hazard assessment
  • hazard analysis
  • safety requirement specification

Hazard assessment: hazard의 위험성을 분석

→ hazard avoidance, detection, limitaion을 섞어서 대처해야함

hazard analysis

  • Inductive, 바텀업: 사례를 모아서 결론을 냄
  • deductive, 톱다운: 연역,추론

대학생을 위한 시사

상속세 논쟁

세금의 종류

  • 명목세율: 법형식적으로 규정된 세율
  • 실효세율: 명목세율에서 여러 공제를 받고난 후 실질적으로 납부하는 세율

조세 규모가 큰 순서

소득세(Income Tax)>부가세(VAT, 간접세, 세금에 대한 저항이 낮음)>법인세

그외의 세금들: 재산세, 상속세, 증여세, 특소세, 교육세

우리나라의 재벌: 족벌적 지배구조

스웨덴: 상속세가 낮은 대신 소득세가 높음, 족벌적 구조 → 발렌베리식 구조(회사의 수익이 개인에게 가지 않고 사회로 돌아감)

 

복지 사각지대 이슈: 복지신청주의 → 한계, 보완 필요

 

국제 이주와 다문화 사회: 문화적인 충돌이 심함

제노포비아: 이방인에 대한 혐오 현상

다양성의 힘: 이민자들, 다양한 지식과 분야들끼리의 공학의 융합을 기대

 

탄소 중립논쟁

한반도의 기후변화

탄소중립으로인한 기후변화를 부정하는 문제


 

시스템 프로그래밍

Arithmetic 연산- 곱셈, 나눗셈

 

Mul instruction - unsigned: 피연산자를 하나만 필요, register나 memory중 하나

비트에 따라 대응하는 레지스터가 다름

8비트: al로 고정, 결과는 ax에 저장

16비트: ax로 고정, 결과는 dx (상위 2개 바이트 ) : ax (하위 2개 바이트) 에 나눠서 저장

32비트: eax로 고정, 결과는 edx(상위 4바이트), eax(하위 4바이트)에 나눠서 저장

Mul연산에서는 오버플로우 발생X

carry flag, overflow flag는 상위 반쪽으로 넘어갈 경우 세팅됨 → 세팅되어 있지 않으면 뒤에 부분만 봐도 됨

 

IMUL - signed 곱셈,

  • single-operand formats: 연산 결과가 앞의 mul과 동일 부호 맞춰주는 것만 추가됨
  • double-operand formats: 앞에는 무조건 레지스터, 계산 결과가 첫번째 피연산자에 저장됨, 두 피연산자의 크기가 같아야함, 다만 앞에 상수면 예외적으로 8비트도 가능하다, 값이 넘어가면 cf,of가 세팅된다, 피연산자가 한개이면 상수 사용이 불가능하다, dest의 사이즈가 고정된다 → truncate, 하위 116바이트만 고려하며 넘치는 바이트는 버린다.
  • triple-operand formats: 피연산자 사이즈 맞춰줌, 다만 상수오면 8비트 사용가능, 뒤에 오는 2개 곱해서 첫번째 피연산자에 저장

→ unsigned연산, signed연산 둘다 같이 사용가능하고, 연산결과도 같다 다만 signed에서만 truncate가 발생한다.

나눗셈

Div - unsigned devide

레지스터 or 메모리 크기 지정된 피연산자 나누는 숫자 결과 저장 나머지 저장

8비트 ax 8비트 al ah
16비트 dx, ax 16비트 ax dx
32비트 edx, eax 32비트 eax edx

Div - signed devide: 값을 두배해서 넣어주고 sign을 맞춰 주어야함


컴퓨터 네트워크

Chapter 10. 응용계층

p2p, 클라이언트, API, 소켓, TCP, UDP, SCTP

웹 클라이언트

URL

HTTP

영속적 VS 비영속적

  • 영속적: 초기방식, 하나하나씩 데이터를 가져옴, 오버헤드 발생, 비효율적
  • 비영속적: 한서버에 데이터가 다 있을 경우 한번에 다 가져옴

요청과 응답메시지의 형식

메소드

쿠키

제어연결

데이터 연결

전송모드