Computer Science 37

[시스템 프로그래밍] Chapter 3

프로세스란 실행 중인 프로그램이 기 때문에 active entity , 프로그램이란 static(passive) entitytime sharing : 실행할 프로세스를 빠르게 스위칭하면서 ready que안에 들어있는 프로세스들이 사용자 눈에는 동시에 실행이 되는 거처럼 보이도록 하는 것 context switch : 실행중인 프로세스를 스위칭하는 것, 현재 상태 정보를 저장을 함. 다음에 스위칭할 지점을 기억해 야하기 때문  process identificationreal user : 프로세스를 실행하는 유저effective user : 프로세스가 어떤 유저의 권한으로 실행이되는것이냐 라고 나타내는 것 fork() 함수 현재프로세스에 자식프로세스를 생성하는 역할(즉, 프로세스를 하나 만드는 역할, 부모..

[시스템 프로그래밍] Chapter 2

프로그램이란  static 한 객체로 사용자들이 프로그램이 실행이 될 때 그 instruction squence를 나열한 것 이 프로그램을 실행하면 프로세스가 된다. Program counter : 다음에 실행할 instruction의 주소가 저장되어있음스레드 실행 예시ex) 프로세스 안에 245, 246, 247이 있다고 가정결과 - 245, 246, 247ex) 두 개의 프로세스이고 프로세스 1은  245, 246, 247이 다른 하나는 10, 11, 12, 13이 있다고 가정만약 OS가 1번 프로세스를  먼저 실행하고 프로세스 1이 5개의 instruction을 하고 스위칭을 하고 프로세스 2는 4개의 instruction을 하고 스위칭한다고 가정하자. context switch(실행할 프로세스가 ..

[분산 시스템] Process

프로세스가 실행되려면 하나의 스레드는 무조건 있어야 함프로세스란 실행 중인 프로그램 lock machanism : 스레드가 메모리 공간을 사용할 때 다른 스레드들은 사용하지 못하도록 잠가서 충돌을 방지하는 것분산시스템에서 스레드를 사용하는 이유? 프로세스 안에서 concurrency 한 task를 수행하기 위해서Single-threaded process프로세스의 퍼포먼스가 떨어질 수 있음동시에 수행해야 할 것이 많은데 중간에 하나의 태스크가 오래 걸리면 다음 태스크를 수행하기까지 오래 걸림blocking system call : 프로세스가 함수를 호출하고 그 함수가 주어진 역할을 한 뒤에 리턴이 될 때까지 프로세스는 블록 상태가 되는 것Multi-threaded process퍼포먼스를 향상할 수 있음스레..

[시스템 프로그래밍] Chapter 1

TerminologyAsynchronous operation(event) : 비동기식 synchronous(정해진 시간 순서에 발생하는 이벤트)와는 다르게 예측할 수 없는 이벤트들을 처리할 수 있어야 하는 시스템 (ex. 키보드 누르기, 프린트 요청하기)Concurrency : 동시성(병행성)↔parallel task(병렬)parallel task : 동시의 테스크가 동시에 시작되는 것Concurrency : 동시에 시작되는 거처럼 보임. 여러프로세스가 하나의 CPU를 공유하면서 사용하면 사용자 눈에는 두 개의 프로세스가 동시에 실행되는 것처럼 보임Communication : 통신 Time and speedOS가 관리하는 시스템 리소스는 s/w 와 h/wDisk drives(Hard disk) : mec..

[시스템 프로그래밍] LInux

리눅스 기본 명령어man : 도움말 보기pwd(print working directory) : 현재 작업 디렉터리 확인cd(change directory) : 작업할 디렉토리를 변경, "~"는 홈 디렉터리, ".. "은 작업 디렉터리를 부모디렉터리로 이동ls(list) : 파일이나 서브디렉토리 목록을 확인- -l : 파일의 부가정보를 더 출력- -t : 마지막 수정시간을 기준으로 출력- -S : 크기를 기준으로 출력- -h : 사람이 읽기쉬운 크기단위로 바꿔서 출력- -r : 순서를 뒤집어서 출력ex) ls -ltr : long list로 출력하고 수정시간을 기준으로 출력하고 그 순서를 오래된 순으로 바꿔서 출력      ls *.c -l : c로 끝나는 파일을 long list로 출력mkdir(make..

[분산 시스템] Architectures

분산시스템은 software systems으로 구성되어 있음.분산시스템을 만들 때 애플리케이션과 underlying platform(ex. os. h/w)을 분리해야 하고 분산투명성을 제공하고 adaptability(적응성)를 추가하는 것이 좋다.Architectural styles  - Layered architectures- Object-based architectures- Data-centered architectures- Event-based architectures Layered architecturesComponents들이 하나의 계층 구조로 이루어져 있음(서로 위아래 컴포넌트끼리 네트워크 하는 것)장점 : 관리가 쉽다. 하나의 계층에서 문제가 발생해도 그 계층만 고치면 정상적으로 작동이 가능..

[분산 시스템] Distributed System

분산시스템이 개발이 된 계기 : 컴퓨터의 계산능력과 컴퓨터의 네트워크가 발전하면서 분산시스템이 개발이 되었다. 분산시스템의 정의 : 독립적인 여러 개의 컴퓨터들의 집합이고 사용자의 입장에선 하나의 시스템으로 보이도록 하는 것ex) web환경 분산시스템의 중요한 특징분산시스템은 자율적인 구성품들로 이루어져 있다.사용자가 생각하기에 하나의 시스템을 사용하는 것처럼 보임분산시스템의 특징들다른 컴퓨터들과의 차이점은 컴퓨터들이 분산되어 있다는 사실과 의사소통 한다는 사실이 사용자들에게 숨겨짐사용자와 애플리케이션들이 분산시스템 안에서 동일한 방식으로 상호 작용함분산시스템은 비교적 확장하기 용이해야 함비록 일시적으로 장애가 발생하더라고 계속적으로 이용 가능해야 함Middleware : os와 app사이에 위치한 소프..