병행성이란 말은 동시에 여러 일을 하려 할 때 반드시 해결해야 하는 문제들을 가리킬 때 사용한다. 가상화에서 봤듯이 운영체제는 하나의 프로세스 처리, 그 다음 프로세스 처리, 다음 프로세스 등의 순서로 여러 프로세스를 실행시켜 한 번에 많은 일을 한다. 이러한 행동은 문제를 일으킨다. 멀티 스레드 프로그램으로 알아보자. 메인 프로그램은 pthread_create()를 사용하여 두 개의 쓰레드를 생성한다. 쓰레드를 동일한 메모리 공간에서 함께 실행 중인 여러 개의 함수라고 할 수 있다. #include #include volatile int counter = 0; int loops; void * worker(void * arg){ int i; for(i=0;i ./thread 10000 initial va..
프로그램이 실행될 때 어떤 일이 일어날까? 먼저 명령어를 실행한다. 프로세서는 명령어를 초당 수십억번 fetch(반입)->decode(해석)->execute(실행) 과정을 거친다. 명령어 작업 완료 후 프로세서는 프로그램이 완전히 종료될 때 까지 명령어를 실행한다. 이런 방식은 Von Neumann(폰 노이만) 컴퓨팅 모델의 기초이다. 시스템을 사용하기 편리하면서 정확하고 올바르게 동작시키기 위해 OS(운영체제)를 사용한다. 위의 과정을 실행하기 위해 가상화라는 기법을 사용한다. 운영체제는 프로세서,메모리,디스크 같은 물리적인 자원을 이용해 가상 형태의 자원을 생성한다. 가상 머신을 이용해 메모리 할당, 프로그램 실행, 파일 접근과 같은 활동을 운영체제에게 요청할 수 있도록 운영체제는 사용자에게 API를..
출처 : https://velog.io/@chowisely/Operating-Systems-Memory-Managementhttps://velog.io/@pa324/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-l5k3qktzwo 기억장치 계층 구조 CPU가 주기억장치에서 데이터를 가져올 때 좀 더 빠르고, 가격 대비 좋은 성능으로 실행하기 위해 여러가지 기억장치들을 계층구조로 쌓아 올린다. 주소 바인딩(address binding)프로세스가 실행되기 위해서는 프로그램이 물리적 메모리에 적재되어야 한다.또한, CPU가 기계어 명령을 수행하기 위해 논리적 주소를 통해 메모리 참조를 하게 되면 해당 논리적..
스케줄링스케줄링이란 CPU의 자원을 효율적으로 사용하기 위해 프로세스들의 순서를 정해주는 정책.다음에 실행할 프로세스를 고르는 기준은1.CPU 이용률.2.처리량(throughput) : 단위시간 실행을 완료한 프로세스의 수.3.소요시간(turnaround time) : 프로세스의 시간부터 종료까지 걸리는 시간.4.응답시간(response time) : 요청을 보낸 시간부터 처음 응답받을 때까지 걸리는 시간.5.대기시간(wait time) : 준비 큐에서 대기하는 시간. 스케줄러의 점유 방식에는1.선점(Preemptive)방식은 프로세스가 CPU 점유 도중에 다른 프로세스가 CPU를 점유 가능.응답이 빠르고 모바일에서 많이 사용하는 방식.대화형에 적합. 하지만 오버헤드가 발생한다.ex)Round-Robin..
출처 :https://velog.io/@chowisely/Operating-Systems-Process-Threadhttps://velog.io/@raejoonee/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4https://jwprogramming.tistory.com/15 프로세스와 스레드의 차이점을 먼저 말해보자면 프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위.스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위.프로세스먼저 프로그램이란 단어는 프로세스와 다른의미를 가진다. 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상..
I/O를 관리하기 위해서 CPU를 통해 관리하는 방법을 사용해 왔다.하지만 이러한 인터럽트 방식은 CPU 연산에 방해가 된다.CPU와 독립적으로 작동하기 위해 DMA 방식과 I/O processor 방식을 사용한다. 먼저 CPU를 사용해 관리하는 방법은 프로그램에 의한 I/O와 인터럽트에 의한 I/O 방식이 존재한다. 프로그램에 의한 I/O는 메모리에 있는 명령을 이용해 CPU를 거쳐 I/O를 받는다. polling 방식을 이용하기 때문에 프로세서의 시간을 낭비하고 효율이 떨어진다.polling 방식이란 하드웨어 장치의 레지스터를 주기적으로 읽는 방법이다. 주기적으로 실행되기 때문에 효율성이 떨어진다. 인터럽트에 의한 I/O는 CPU에 인터럽트를 걸어 진행중이던 작업을 중단하고 인터럽트를 처리하는 방식이..
출처 : https://velog.io/@chowisely/Operating-Systems-IntroductionInterrupt일반적으로 인터럽트(interrupt)는 하드웨어에 이벤트가 발생해 CPU에 알리는 방법이다.하지만 소프트웨어 쪽 프로세스가 인터럽트를 알리는 경우도 발생한다.전자의 경우는 비동기식 인터럽트,후자는 동기식 인터럽트라고 한다. 동기식 인터럽트의 종류는1.trap : 의도적으로 일으킨 인터럽트. ISR 종료 후 실행 재개2.Fault : 복구가 가능할 수도 있는 인터럽트.3.Abort : 복구가 불가능한 인터럽트Interrupt Service Routine(ISR)CPU에 인터럽트가 걸리면 ISR에게 제어권을 준다.ISR은 인터럽트를 발생하게 하는 문제점인 인터럽트 핸들러의 주소가..
- Total
- Today
- Yesterday
- 로지스틱회귀
- json2html
- porks
- AE
- HTML
- 논문 잘 쓰는법
- 딥러닝
- 케라스
- PCA
- one-to-many
- many-to-one
- cuckoo
- Python
- AVB
- SOME/IP
- 크로스 엔트로피
- problem statement
- 회귀
- 차량 네트워크
- 차량용 이더넷
- Ethernet
- many-to-many
- 단순선형회귀
- CAN-FD
- AVTP
- 머신러닝
- automotive
- SVM
- automotive ethernet
- 이상탐지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |