본문 바로가기

분류 전체보기

(4)
[운영체제] 스레드와 병행성_다중 스레드 모델 스레드를 위한 지원은 사용자 스레드를 위해서는 사용자 수준에서 제공. 커널 스레드를 위해서는 커널 수준에서 제공. 사용자 스레드는 커널 위에서 지원되며 커널의 지원 없이 관리됨. 커널 스레드는 운영체제에 의해 직접 지원되고 관리됨. 사용자 스레드와 커널 스레드 간 연관관계 3가지. ( 다대일 모델, 일대일 모델, 다대다 모델 ) 다대일 모델 다대일 모델은 많은 사용자 수준 스레드를 하나의 커널 스레드로 사상(mapping)함. 스레드 관리는 사용자 공간의 스레드 라이브러리가 함. -> 효율적. 한 스레드가 봉쇄형 시스템 콜 할 경우, 전체 프로세스가 봉쇄됨. 한 번에 하나의 스레드만 커널에 접근 -> 다중 스레드가 다중 코어 시스템에서 병렬로 실행될 수 없음. 다중 처리 코어의 이점을 살릴 수 없어 사용..
[운영체제] 스레드와 병행성_다중 코어 프로그래밍 Concurrency versus Parallelism ( 병행 실행 vs 병렬 실행 ) 단일 CPU 시스템은 다중 CPU 시스템으로 발전됨. 나중에는 단일 컴퓨팅 칩에 여러 텀퓨팅 코어를 배치하는 것으로 발전 이러한 시스템을 다중 코어라고 함. 다중 스레드 프로그래밍은 여러 컴퓨팅 코어를 효율적으로 사용하고 병행성을 향상시키는 기법을 제공 병행성과 병렬성의 차이점 병행 시스템은 모든 작업이 진행되게 하여 둘 이상의 작업을 지원한다. 병렬 시스템은 둘 이상의 작업을 동시에 수행할 수 있다. CPU 스케줄러는 프로세스 간 빠른 전환을 통해 병렬성의 환상을 제공함. 병행하게 실행되었지만 병렬로 실행되지 않음. 프로그래밍 도전 과제 일반적으로 다중코어 시스템을 위해 프로그래밍하기 위해서는 5개의 극복해야 할 ..
[운영체제] 스레드와 병행성 _ 개요 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 스택으로 구성된다. 스레드는 같은 프로세스에 속한 다른 스레드와 운영체제 자원들을 공유한다. 프로세스가 다수의 제어 스레드를 가진다면, 동시에 하나 이상의 작업을 수행할 수 있다. 동기 응용은 다중코어 시스템에서 처리 능력 향상 이런 응용은 다중 계산 코어를 사용해 다수의 CPU-집중 작업을 병렬로 처리 예) 웹 서버는 여러 개의 클라이언트들이 병행하게 접근 단일 프로세스 서버라면 한 번에 하나의 클라이언트만 서비스하므로 매우 긴 시간을 기다려야 함. 해결책은 서버에 서비스 요청이 들어오면, 프로세스는 그 요청을 수행할 별도의 프로세스를 생성하는 것. 그러나 프로세스 안에 여러 스레드를 만들어 나가는 ..
운영체제 구조 운영체제 서비스 사용자와 운영체제 인터페이스 시스템 콜 시스템 서비스 파일관리 상태 정보 파일 변경 프로그래밍 언어지원 프로그램 적재와 수행 통신 백그라운드 서비스 링커와 로더 응용 프로그램이 운영체제마다 다른 이유 운영체제 설계 및 구현 설계 목표 기법과 정책 구현 시스템 서비스 시스템 서비스는 시스템 유틸리티로도 알려진 프로그램 개발과 실행을 위해 더 편리한 환경을 제공한다. 파일관리 파일과 디렉터리를 생성, 삭제, 복사, 개명, 인쇄, 열거, 조작한다. 상태정보 날짜, 시간, 메모리, 사용자 수 등과 같은 상태정보. 상세한 성능, 로깅 및 디버깅 정보 등 제공. 정보를 포맷하여 인쇄하거나 GUI 윈도에 표시 혹은 환경 설정 정보를 저장하고 검색할 수 있는 등록(registry)기능 지원. 파일변경 ..