분류 전체보기 (271) 썸네일형 리스트형 [운영체제] 4. Concurrency: Thread and Lock Concurrency 공유 자원의 존재로 경쟁 상태가 유발됨에 따라 기대와 다른 결과를 도출하게 된다. 이를 잘 약속된 동기화 방법으로 강제하는 것을 병행성이라 한다. Thread & Process Process는 스케쥴링의 객체로 자원을 독점적으로 사용하는 모델이다. -장점과 단점 장점: 독립적인 모델로 결함 발생 시 상대적으로 안전하다. 단점: 자원 공유가 불가능하다. 생성이 느리다(많은 영역을 복제). Thread 또한 스케쥴링의 객체로 프로세스와 다르게 많은 자원을 공유한다.(code, data, heap and files) '-장점과 단점 장점: 병렬성, 자원공유, 빠른 생성, 대기와 처리의 오버랩 단점: 결함 발생 시 프로세스 모델에 비해 취약하다. Concurrency Example 아래의 .. [운영체제] 3. Scheduling Scheduling 한 시점에서 여러 프로세스가 제한된 물리적 자원인 CPU를 접근할 경우 프로세스 별로 접근에 대한 순서를 정해주어야 된다. Scheduling Metrics Turnaround time = 수행완료시간 - 도착시간 Response time = 첫 서비스 시간 - 도착시간 Fairness: 프로세스간 걸리는 시간이 비슷한 정도 Throughput: 단위 시간 동안 얼마나 많은 작업을 처리했는지 Deadline: Turnaround time < deadline FIFO(First In First Out) 도착 시간이 빠른 프로세스를 먼저 수행하는 스케쥴링 기법. 장점으로는 간단하고 구현이 쉽지만, 단점으로는 convey effect에 의해 긴 대기 시간이 유발될 수 있다. SJF(Shot.. [운영체제] 2. Process Process 프로세스는 연속적으로 실행중인 프로그램으로 스케쥴링의 대상이다. PCB(Process Control Block): 프로세스를 관리하기 위한 자료구조로 pid, CPU register 등 다양한 정보가 있다. State and Transition Suspend & Resume Suspend: 시스템의 메모리가 부족하여 ready, waiting 상태의 프로세스 중 사용이 적은 프로세스를 Disk의 swap 공간으로 내리는 작업. Resume: 시스템의 메모리 공간이 여유로워져 suspend로 인해 Disk의 swap공간으로 내려갔었던 프로세스를 메모리로 다시 올리는 작업. Mechanism: Limited Direct Execution Problem #1: Restricted Operatio.. [운영체제] 1. Introduction Operating System 컴퓨터의 시스템 자원을 효율적으로 관리하여 사용자가 컴퓨터를 편리하고, 효과적이게 사용할 수 있는 환경을 제공하는 시스템 소프트웨어이다. OS's Main Topic 1. Virtualization 물리적 자원을 추상화 시켜 더 강력하고 사용하기 쉬운 가상 자원의 형태로 바꾸는 작업. 2. Concurrency 여러 프로세스가 동시에 수행될 때 성능은 효율적으로 유지시키며 협력적인 태도로 자원을 공유하게 만드는 작업. 3. Persistency 휘발적인 특성의 Main memory(DRAM)을 영속적인 Storage에 명시적으로 저장하는 작업. Policy & Mechanism Policy: Which(or what) to do? 예시. 어린이 보호구역에서 과속을 금지 Me.. [Docker] MySQL 이미지 다운 받기 앞선 예들과 다르게 MySQL은 Docker Hub라는 공간에 존재하여 바로 이미지를 다운받을 수 있다. docker run -d -p 9876:3306 -e MYSQL_ROOT_PASSWORD=password mysql:5.6 run 명령어만 사용하여 9876포트를 mysql 기본 포트인 3306과 연결하여 pull하고 run 되었다. 그리고 기본 비밀번호도 설정했다. 이제는 MySQL에 접속해보자 1. 먼저 해당 컨테이너에 접속을 해야한다. docker exec -it "container number" /bin/bash 두번째 줄 커맨드를 보면 해당 컨테이너로 이동된걸 볼 수 있다. 2. MySQL 접속. mysql -u root -p 위 명령어를 입력후 password를 입력하면 아래와 같이 성공적.. [Docker] 실제 Docker 이미지를 작성하기 1. Dockerfile 생성 - 항상 Dockerfile이라는 이름을 사용해야 한다. vi Dockerfile 2. 작성 우분투 18.04 를 기반 메인테이너: 누가 작성했나 자신과 이 다음부터 어느 OS에서 이 이미지를 받아 컨테이너로 실행할 시 자동으로 수행되는 루틴을 작성한다. 아파치를 다운로드 받고 기본 아파치 HTTP 포트인 80을 열고 아파치를 항상 구동중인 상태로 유지하라. 또한 PHP 관련 설치도 진행하라 만약, 위 처럼 작성하고 빌드하면 아래와 같은 화면을 마주할 것이다. 여기서 중지되게 되는데 우리는 어떤 옵션도 줄 수 없다. 따라서 애초에 작성을 잘 해야됨을 의미한다. 이거는 각 언어별 다양한 에러를 접할 수 있고, 직접 경험해봐야 에러에 대한 해결책을 알 수 있다. 3. 다시 빌드.. [Docker] 도커 개념 및 hello-world 이미지를 받아 컨테이너로 실행하기 기본 배경 1. Jupyter Notebook 설치 인스턴스로 생성된 OS를 웹브라우저환경에서 수행한다. (필자는 putty를 이용하여 서버에 접속할 예정) $ sudo apt-get update % sudo apt-get install python3-pip $ sudo pip3 install notebook 2. Docker 다양한 컨테이너를 이미지의 형태로 저장한다. 이미지를 다운로드 받아 서버의 이전, 확장을 손쉽게하는 가상화 소프트웨어이다. OS에 관계 없이 도커 엔진 위에서 프로그램을 실행할 수 있다. Install Docker Engine on Ubuntu docs.docker.com 우분투 버전마다 다르므로 위 공식문서를 참조하는게 좋다. sudo apt update sudo apt inst.. [Ubuntu 18.04] Solution: Unable to locate package... /etc/apt/sources.list 파일을 편집해야 한다. 늘 그렇듯 미리 위 파일 하나를 백업해두고.. deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse 파일 내용을 위와 같이 교체하면 문제가 해결됨 이전 1 ··· 25 26 27 28 29 30 31 ··· 34 다음