<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix"><br>
<div class="moz-signature">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<br>
<style>a {color: #F77A1E;</style>On 20/03/2014 23:33, il Katta
wrote:<br>
</div>
</div>
<blockquote
cite="mid:CAH7uX0aJ-QJaxoatc815Xy++aO59nFvQeFSqe0x2X3eFzYGMFQ@mail.gmail.com"
type="cite">
<div dir="ltr">Purtroppo ieri ero via per lavoro, temo lo sarò
anche nelle prossime settimane -.-'
<div><br>
<div>In tinycore bash è presente nei repository ( se non
sbaglio ). </div>
<div>Sarebbe pensabile installarlo sulle tue macchine? </div>
<div>( non è neccesario usarlo come shell dell'utente, è
sufficiente che sia installato in /bin/bash ). </div>
<div>Ad ash mancano funzionalità di cui lo script fa uso.</div>
<div>Se dai un occhio all'ultima revisione dello script[0] sto
provato ad emulare il funzionamento di cpulimit.</div>
<div>( lo script utilizza cpulimit se installato, altrimenti
carica la funzione omonima ).</div>
</div>
<div><br>
</div>
<div>Saluti</div>
<div><br>
</div>
<div>[0] <a moz-do-not-send="true"
href="https://gist.github.com/il-katta/9582040"
target="_blank">https://gist.github.com/il-katta/9582040</a></div>
<div class="gmail_extra"><br>
<br>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
</blockquote>
<br>
Hmmm.. potrebbe esser un problema.<br>
Lo script originale che mi proponevi pesava 2.2KB circa. (ottimo!)<br>
Il programma fatto ieri all'incontro (vedi sotto) pesa 7.5KB con 5
librerie linkate staticamente (più che accettabile).<br>
<br>
bash occupa 6.5MB una volta installata. Sono tanti, infatti in
TinyCore e' stata sostituita con busybox proprio per questa ragione.<br>
<br>
Dunque ringraziandoti ancora una volta, Dario, mi permetto di
pubblicare il programma consume.c :<br>
<br>
#include <stdlib.h><br>
#include <stdio.h><br>
#include <unistd.h><br>
#include <stdint.h><br>
#include <time.h><br>
<br>
<br>
int main() {<br>
srand(time(NULL));<br>
int rmem = (rand()%89)+10;<br>
printf("will use %d%% of free memory\n", rmem);<br>
int rcpu = (rand()%89)+10;<br>
printf("will use %d%% of cpu\n", rcpu);<br>
//printf("%ld",0);<br>
long freemem = sysconf(_SC_AVPHYS_PAGES) *
sysconf(_SC_PAGE_SIZE);<br>
malloc((int) rmem*0.01*freemem);<br>
printf("%ju\n", (uintmax_t)clock()/CLOCKS_PER_SEC);<br>
uint64_t j = 0;<br>
long target = (int) rcpu*0.01*28000;<br>
long to_sleep = 100 * (100 - rcpu);<br>
while(1){<br>
for (long i=0; i<target; i++){<br>
j++;<br>
}<br>
nanosleep((struct timespec[]){{0, to_sleep}}, NULL);<br>
}<br>
//printf("%ju\n", (uintmax_t)CLOCKS_PER_SEC);<br>
printf("%lf\n", ((double)clock()/CLOCKS_PER_SEC));<br>
//while()<br>
return 0;<br>
}<br>
<br>
Come abbiamo visto c'e' qualcosa che non va in quanto l'utilizzo
reale della CPU/memoria non combaccia con i valori settati dal
programma.<br>
Oggi ho provato ad installare un'altra macchina virtuale con Fedora
e gcc per continuare lo sviluppo del programma, ma non sono riuscito
a scaricare il pacchetto gcc (e putroppo non ho avuto tempo per fare
troubleshooting).<br>
<br>
Ora, cpulimit non sembra particolarmente pesante ma non se e'
possibile installarlo su TinyCore in quanto la distribuzione
utilizza questo formato particolare detto tcz.<br>
<br>
Devo valutare bene tutto, intanto grazie ancora a tutti!<br>
<br>
<br>
</body>
</html>