분류 전체보기 146

[운영체제] Ch4(2)Implicit Threading

Implicit Threading : 애플리케이션 프로그래머가 쓰레드 생성을 하겠다는 api를 실질적으로 사용하는 것. --> 더 쉽게 멀티쓰레드를 만드는 것. 컴파일러나 라이브러리가 프로그래머 대신에 OS에서 thread를 만들어 준다. 1. Thread pool p34 쓰레드를 미리 많이 만들어 놓는다. 미리 만들어 놓으면 프로그램 수행 속도가 더 빠르다. 쓰레드 갯수를 미리 정할수도 있고 동적으로 변화시킬 수도 있다. 2. Fork-Join p37 쓰레드를 세로 만든 후(Fork), 만든 쓰레드에게 일을 시키고 종료되기를 기다린다.(Join) 3. OpenMP(C, C++, FORTURAM) p43 이것을 parallel로 해달라고 컴파일러에게 부탁하는 것 #paragma omp parallel 4..

[운영체제] Ch4(1)Multicore와 Multithread

개요 하나의 app이라도 여러 task를 수행하기 위해 최근 프로그램들은 모두 multithread를 이용한다. multi-process보다 시간도, 자원도, 비용도 더 적게 드는 multi-thread Multi-threaded 장점 응답성 향상 리소스 공유(리소스가 차지하는 메모리 공간 낮아짐) 비용적 측면, context switching 시간 빠름 multicore의 장점을 가져갈 수 있다. Multicore Programming Parallelism VS Concurrency Parallelism병렬처리: core라던지 cpu가 많은 환경 concurrency(Concurrent execution): 하나의 process나 하나의 core지만 소프트웨어적으로 동시에 수행하도록 짜는 것 paral..

[운영체제] Ch3(2)InterProcess Communication(IPC)

Interprocess Communication(IPC) 개념 process끼리의 통신 목적 정보공유 속도증가 모듈러리티(세분화)-->유지보수 용이, 유연성 증가 편의성 IPC 두가지 모델 IPC 모델 설명(2) (a) memory에 write, read (b) 서로 직접 send, receive Producer-Consumer Problem Producer-Consumer model :Producer는 데이터를 생성하고, Consumer는 데이터를 소비하는 모델 unnounded-buffer: 0~1024까지 다 쓰면 다시 0으로 돌아가서 다시 씀. IPC in Shared-Memory Systems https://m.blog.naver.com/demonic3540/221671407431 IPC (4)..

[운영체제] Ch3(1)Process개념과 작동

Process Concept Process: 프로그램을 수행하는 것(멈춰있는 것이 아니라 움직이는 것-active) [Process의 구성 요소] text section: 소스코드(명령어) program counter: cpu 안의 레지스터 값( 다음에 수행해야 할 번지수) stack: 일시적인 데이터 보관 장소 Data section: 데이터 저장 장소1 Heap: 데이터 저장 장소2 한 프로그램에 여러 프로세스가 존재 가능하다. (한 설명서에 여러 사람들이 보고 만드는 것) text, data: 사이즈 고정 stack, heap: 프로그램 수행 중 사이즈 늘었다 줄었다. data: global variable stack: local variable, argc, argv, 또 다른 함수 부를 때 hea..

[운영체제] Ch2(2) linkers and loaders & OS설계와 디버깅

Linkers and Loaders 큰 프로그램은 여러 사람들이 만든 소스코드들로 이루어져 있다. Linker는 이런 여러 소스코드들을 하나의 single binary executable file로 만들어 준다. loader는 linker로 인해 만들어진 executable file을 가져와 실행헤준다. (file를 클릭하여 수행할 때) 하지만 dynamically linked libraries는 필요할 때만 로드되어 사용된다. system call이 시스템마다 틀리기 때문에 한 운영체제에서 만든 system call은 다른 운영체제에서는 돌아가지 않는다. --> 이 때 가상의 VM을 만들어서 실행시킬 수 있다. Application Binary Interface: 오브젝 레벨의 인터페이스. 오퍼레이팅 ..

[운영체제] Ch2(1) OS Services & System call

OS Services 운영체제는 프로그램을 수행하기 위한 환경을 만들고 유저들에게 다양한 경험을 주어야 한다. [OS Services 종류들] User interface(명령어를 입력하기 위해) Program execution(프로그램 수행 과정 지원) I/O operations File-system manipulation Communications Error detection Resource allocation(Cpu cycles, main memory, file storage, I/O devices) Logging Protection and Security User interface CLI(Command Line Interface) 사용자가 명령어를 알아서 찾아 입력해야 함. (주로 개발자가 사용) ..

[운영체제] Ch1(5)

Protection – OS에서 정의한 리소스에 대한 프로세스 또는 사용자의 액세스를 제어하는 모든 메커니즘 Security – 내부 및 외부 공격에 대한 시스템 방어(서비스 거부, 웜, 바이러스, 신원 도용, 서비스 도용을 포함한 광범위한 범위) 시스템은 일반적으로 먼저 사용자를 구분하여 누가 무엇을 할 수 있는지 결정합니다. 사용자 ID(사용자 ID, 보안 ID)에는 이름과 관련 번호가 포함됩니다(사용자당 하나씩). 액세스 제어를 결정하기 위한 해당 사용자의 프로세스, 모든 파일과 연결된 사용자 ID 그룹 식별자(그룹 ID)를 통해 사용자 집합을 정의하고 제어한 후 각 프로세스, 파일에도 연결할 수 있습니다. 권한 확대를 통해 사용자는 더 많은 권한을 가진 유효한 ID로 변경할 수 있습니다. Virt..

[운영체제] Ch1(3) OS의 기능들

1. process 관리(후에 따로 자세히) 프로세스는 실행 중인 프로그램이다. (프로그램은 수동적 프로세스는 능동적) 프로세스를 수행하는 데 리소스가 필요하다. CPU, 메모리, I/O, 파일 초기화 데이터 프로세스 종료 시 재사용 가능한 리소스를 회수해야 함 단일 스레드 프로세스에는 실행할 다음 명령의 위치를 지정하는 program counter가 하나 있다. 프로세스가 완료될 때까지 한 번에 하나씩 순차적으로 명령을 실행합니다. 다중 스레드 프로세스에는 스레드당 하나의 프로그램 카운터가 있습니다. 일반적으로 시스템은 여러 프로세스, 일부 사용자, 일부 운영 체제가 하나 이상의 CPU에서 동시에 실행되고 있습니다. [OS가 하는 일) 사용자 프로세스 및 시스템 프로세스 모두 생성 및 삭제 프로세스 일..

[운영체제] Ch1(2) Resource management

Storage-Device Hierarchy volatile storage: 휘발성 메모리 nonvolatile storage: 비휘발성 메모리 계층구조 위로 올라갈수록 1. 용량이 낮아짐 2. 접근속도가 빨라짐 3. 가격이 비싸짐 Caching: 자주 사용하는 것을 계층구조 아래에서 계층구조 위로 올리는 것(접근 속도를 높이기 위해) Device Driver: device controller를 사용해 I/O를 관리한다. 메모리 접근 방식 DMA: DIrect memory Access Structure: CPU없이 메모리 계층 구조 간의 접근--> CPU의 부담을 줄여준다. Multiprocessor : 하나의 컴퓨터에서 processor가 여러개 장점: 비싼 CPU를 늘리는 것보다 저렴하다. Multi..