2 분 소요


1. OS가 뭘까?. 
- OS는 사용자와 하드웨어 간의 인터페이스이다.
- OS는 Standard Service(인터페이스)를 제공한다
- OS는 여러 응용프로그램들과 프로세스들을 조정하여 공평하고 효율적으로 동작하게한다

2. OS가 왜 필요할까? 추상화! : 사용자에게 무한한 자원이 있는 것처럼 느끼게 해준다. 

3. Concurrency: 병렬화
- 동시에 여러개의 활성 프로세스 실행
- 프로세스들 간 통신 가능
- 프로세스들은 특정 리소스에 대한 상호배타적 접근을 요구하기도 함
- CPU 스케줄링, 자원 관리 등

4. OS는요
- 마법사: 무한한 메모리와 CPU시간이 있는것처럼 유저에게 제공해줌
- 정부: 자원을 공평하고 효율적으로 사용할 수 있게 할당하고 안전하고 보안성 있는 통신을 제공하여, 유저를 다른 유저로부터 보호함
- 부모: 언제든지 필요할 때 있다 ㅋㅋㅋㅋㅋㅋ 실패하지 않고 항상 성공ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
- 패스트푸드 레스토랑: 누구나 필요한 서비스를 제공하고 어디서나 같게 동작함
- 복잡한 시스템: 이지만 최대한 심플하게 유지해야함

5. Tightly Coupled System <-> Loosely Coupled System
1) Tightly Coupled System
- 병렬시스템
- 버스를 기본으로 함. Parallel System
- 하나의 메모리에 여러개의 CPU가 병렬로 연결되어 있는 구조.
- 당연히 버스상에서 프로그램들 간 충동 생김.... 그렇지만 버스 충돌 무시함. 버스 속도도 빠르고.
2) Loosely Coupled System
- 분산시스템
- Distributed System
- 큰 일을 나눠서 한다. 
- 하나의 서버에 여러개의 클라이언트가 병렬로 연결되어 있는 구조 -> Grid Computing!!!(or clustered computer
- ex) 구글, 백만대의 서버를 하나의 컴으로 연결함

6. 사용자의 명령이 수행되는 과정?

유저 어플리케이션
----------------------------------------------------------
커널
----------------------------------------------------------
디바이스

- 유저어플리케이션 -> 커널: 시스템콜
- 커널 -> 디바이스: 디바이스 함수 호출하는 시스템콜
- 디바이스 - > 커널: 인터럽트
- 커널 -> 유저어플리케이션: 시그널

7. 인터럽트 핸들링
- 하드웨어 인터럽트가 발생하면 CPU는 자신의 수행 상태ㅡ레지스터와 프로그램 카운터 등ㅡ 를 저장한 뒤 메모리의 특정 주소로 점프한다. 이 메모리에는 인터럽트 서비스 루틴이 담겨있고, 이 서비스 루틴을 수행한 뒤에 다시 CPU의 이전 상태로 복귀한다. 한 입터럽트가 발생하면 다른 인터럽트가 추가로 발생하지 않도록 flag를 걸어두게 되고, 여러 인터럽트가 한번에 발생하는 경우에는 큐에 넣어두고 우선순위대로 처리하게 된다.

8. 데이지 체인
- 디바이스들을 꼬리에 꼬리를 무는 형식으로 연결함 
- 디바이스마다 디바이스 드라이버(새끼 시피윸ㅋㅋㅋ)가 달려있어서 멀티태스킹 가능

9. CLK
- 프로그램이 돌아가게 하는 구령
- clk 없으면 아날로그이다....

10. 메모리
- 트랜지스터 * 2= 플립플랍된다
- 플립플랍 여러개 붙이면 메모리!!
- 만드는 방법(micro programming or Hard-wired(디지털논리회로)

11. 동기/비동기 디바이스-CPU 사이의 통신
1) 동기
- 프린트해줘!! 하고 기다림.. 언제 끝날꺼니.......... 일단 기다림 ㅜㅜ 전화하는거랑 비슷함
2) 비동기
- 프린트해줘! 하고... 난 밥먹음. 하든말든 관심없음. 문자와 비슷함

12. 튜링머신
- 튜링 기계 (Turing machine)란 컴퓨터의 실행과 저장에 관한 추상적인 모델로서 1936년에 앨런 튜링이 알고리즘에 대한 엄밀한 수학적 정의를 위해 도입한 개념
- 또한 임의의 튜링 기계를 모방할 수 있는 기계를 범용 튜링 기계라 하며 이는 현대 컴퓨터의 모델이 됨
튜링 기계의 개념은 '한정된 숫자의 기호 가운데 하나를 가질 수 있는 칸이 무한히 늘어서 있는 종이의 내용을, 엄밀하게 정의된 절차에 따라 규칙적으로 바꿈으로써 계산을 행하는 사람'에 관한 발상을 바탕으로 한다. 거기서 ‘계산을 수행하는 사람’은 튜링 기계의 ‘유한한 조건만 다룰 수 있는 기계’와 대응되는데, 기계가 가질 수 있는 조건들은 m-배형(m-configuration)이라 한다
‘읽힌 기호’에 따라 자기 자신의 m-배형을 변경함으로써 이미 읽었던 기호들도 기억할 수 있다.
튜링 기계의 동작은 m-배형과 작동 시작부터 읽었던 기호들에 의해 결정된다. 튜링은 이를 기계의 배형이라고 정의했다.
기계의 배형에 따라 기계는 여러 가지 동작을 취하는데, 이 동작은 행동표(table of behavior)로 결정되며, 기계는 행동표가 나타내는 알고리즘에 따라 작동한다. 그리고 ‘어떤 단계에서의 기계의 움직임, 읽은 칸의 개수, 테이프에 적힌 모든 기호의 배열 그리고 m-배형’은 그 단계에서의 총배형(complete configuration)을 나타내고, 총배형에 따른 기계와 테이프의 변화는 동작(move)이라함
계산가능수나 계산가능수열을 계산하는 알고리즘이 존재하면 그에 상응하는 튜링 기계가 존재한다. 하지만 계산가능수나 계산가능수열을 계산할 수 없는 튜링 머신도 존재
- 튜링 기계가 이 행동표에 따라 작동할 경우 0과 1 사이를 무한히 왕복하는데, 이런 기계를 순환적(circular)이라고 부르며, 계산가능수열을 출력하는 튜링 기계는 비순환기계(circle-free machine)라고 부름


댓글남기기